🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: news.software.b
3 messages
3 total messages Started by Greyham Stoney Mon, 13 Aug 1990 02:41
How do I tell expire to never expire a single group under Cnews?.
#2308
Author: Greyham Stoney
Date: Mon, 13 Aug 1990 02:41
43 lines
1961 bytes
I think I've managed to set up my explist file correctly; but there is one
thing that doesn't seem too clear from the manual page for expire:
How do I tell expire to never expire a single group under Cnews?. We have
one group that I never want anything expired from; I figured that by setting
the three expire date fields to something huge, it won't ever get around to
expiring articles - is this correct?.

At the moment my explist file looks like this:
--------------------------------------------------------------------------
# modified version, no archiving
#
# hold onto history lines 14 days, nobody gets >90 days
/expired/			x	14	-
/bounds/			x	0-1-90	-

# override later defaults for some groups of note
all.sources,all.sources.all	x	10	-
aus.all				x	10	-
comp.os.minix			x	10	-
comp.unix.i386			x	10	-

# don't ever expire local.permanent
local.permanent			x	10000-10000-10000	-

# big non-tech groups held long enough for a long weekend
sci,rec,talk,soc,misc,alt	u	4	-

# real noise gets thrown away fast
news.groups			x	2	-
junk				x	1	-

# default:  7 days don't archive
all				x	7	-
--------------------------------------------------------------------------
local.permanent is the group in question; will this work ok?.

							thanks,
								Greyham.
-- 
/*  Greyham Stoney:                            Australia: (02) 428 6476
 *  greyham@hades.ausonics.oz.au - Ausonics Pty Ltd, Lane Cove, Sydney, Oz.
 *		Neurone Server: Brain Cell not Responding.
 */
Re: How do I tell expire to never expire a single group under Cnews?.
#2311
Author: Henry Spencer
Date: Mon, 13 Aug 1990 17:48
14 lines
1172 bytes
In article <1990Aug13.024146.1575@hades.ausonics.oz.au> greyham@hades.ausonics.oz.au (Greyham Stoney) writes:
>I think I've managed to set up my explist file correctly; but there is one
>thing that doesn't seem too clear from the manual page for expire:
>How do I tell expire to never expire a single group under Cnews?...

At the moment, giving it a big number is all you can do.  Provision for
some more explicit way of saying "never" is on the to-be-done list.

When choosing big numbers, beware of integer overflow; 32 bits is none
too large for this application.  "10000" (slightly under 30 years) is safe
for the next decade or two.
-- 
It is not possible to both understand  | Henry Spencer at U of Toronto Zoology
and appreciate Intel CPUs. -D.Wolfskill|  henry@zoo.toronto.edu   utzoo!henry
Re: How do I tell expire to never expire a single group under Cnews?.
#2382
Author: Eric Murray
Date: Thu, 12 Apr 2018 12:27
169 lines
5041 bytes
In article <1990Aug13.024146.1575@hades.ausonics.oz.au> greyham@hades.ausonics.oz.au (Greyham Stoney) writes:
>I think I've managed to set up my explist file correctly; but there is one
>thing that doesn't seem too clear from the manual page for expire:
>How do I tell expire to never expire a single group under Cnews?.

You hack it to understand 'never' in the explist file.

% diff -c expire.c expire.c.old

*** expire.c	Thu Jun  7 11:38:56 1990
--- expire.c.old	Thu Jun  7 10:16:32 1990
***************
*** 123,132 ****
  void euclose();
  char *whereexpire();
  time_t back();
- 
- /* ericm hack */
- time_t backtime();
- 
  void checkdir();
  void fail();
  void control();
--- 123,128 ----
***************
*** 259,315 ****
  	char line[200];		/* long enough for any sane line */
  	register char *p;
  	void ctlline();
- 	char *buf;
- 	int	got_cont = 0;
  
- 	/* ericm hacks.... modified to accept lines ending in '\\n' (the \n is
- 	*	invisible of course) as a line continuation deal.
- 	*/
- 	buf = (char *)0;
  	while (fgets(line, sizeof(line), f) != NULL) {
  		p = &line[strlen(line) - 1];
  		if (*p != '\n')
  			fail("control line `%.30s...' too long", line);
- 
  		*p = '\0';
! 		if (line[0] == '#' || line[0] == '\0')
! 			continue;
! 
! 		if (*(p-1) == 0134 )
! 			got_cont = 1;
! 
! 		if (got_cont) {
! 			/* line continuation */
! 			char *tmp = buf;
! 
! 			if (*(p-1) != 0134 )
! 				got_cont = 0;
! 			else
! 				*(p-1) = '\0';	/* erase the '\' */
! 
! 			if ((buf = (char *)malloc(strlen(tmp) + strlen(line) + 1)) == NULL){
! 				fail("out of memory for control line", "");
! 			}
! 			strcpy(buf,tmp);
! 			strcat(buf,line);
! 		}
! 		if (!got_cont) {
! 			if (!buf) {
! 				if (line[0] != '#' && line[0] != '\0') {
! 					/* printf("line = ` %s '\n",line); */
! 					ctlline(line); 
! 				}
! 			}
! 			else {
! 				if (buf[0] != '#' && buf[0] != '\0') {
! 					/* printf("buf = ` %s '\n",buf); */
! 					ctlline(buf); 
! 				}
! 				free(buf);
! 				buf = (char *)0;
! 			}
! 		}
! 		bzero(line,sizeof(line));
  	}
  }
  
--- 255,268 ----
  	char line[200];		/* long enough for any sane line */
  	register char *p;
  	void ctlline();
  
  	while (fgets(line, sizeof(line), f) != NULL) {
  		p = &line[strlen(line) - 1];
  		if (*p != '\n')
  			fail("control line `%.30s...' too long", line);
  		*p = '\0';
! 		if (line[0] != '#' && line[0] != '\0')
! 			ctlline(line);
  	}
  }
  
***************
*** 353,375 ****
  	(void) strcpy(datebuf, field[2]);
  	ndates = split(datebuf, dates, 3, "-");
  	switch (ndates) {
- 	/* i've replaced ' back(atof(dates[0])) ' with backtime()
- 	* backtime checks for an 'n' in the date field... to
- 	* allow a 'never-never-never' expiry specifyer
- 	*/
  	case 3:
! 		ct->retain = backtime(dates[0]);
! 		ct->normal = backtime(dates[1]);
! 		ct->purge = backtime(dates[2]);
  		break;
  	case 2:
  		ct->retain = (bounds != NULL) ? bounds->retain : back(0.0);
! 		ct->normal = backtime(dates[0]);
! 		ct->purge = backtime(dates[1]);
  		break;
  	case 1:
  		ct->retain = (bounds != NULL) ? bounds->retain : back(0.0);
! 		ct->normal = backtime(dates[0]);
  		ct->purge = (bounds != NULL) ? bounds->purge : EPOCH;
  		break;
  	default:
--- 306,324 ----
  	(void) strcpy(datebuf, field[2]);
  	ndates = split(datebuf, dates, 3, "-");
  	switch (ndates) {
  	case 3:
! 		ct->retain = back(atof(dates[0]));
! 		ct->normal = back(atof(dates[1]));
! 		ct->purge = back(atof(dates[2]));
  		break;
  	case 2:
  		ct->retain = (bounds != NULL) ? bounds->retain : back(0.0);
! 		ct->normal = back(atof(dates[0]));
! 		ct->purge = back(atof(dates[1]));
  		break;
  	case 1:
  		ct->retain = (bounds != NULL) ? bounds->retain : back(0.0);
! 		ct->normal = back(atof(dates[0]));
  		ct->purge = (bounds != NULL) ? bounds->purge : EPOCH;
  		break;
  	default:
***************
*** 1345,1359 ****
  	*rp = '\0';
  
  	return(result);
- }
- 
- /* ericm hacks */
- time_t backtime(time)
- char *time;
- {
- 
- 	if (*time == 'n')
- 		return(EPOCH);	/* 'never' */
- 
- 	return(back(atof(time)));
  }
--- 1294,1297 ----


I also changed things a bit to allow a '\' as a line continuation
so I could use my old Bnews expire script.  This diff is from the 25-May-1990
version.


 eric murray           ibmsupt!ericm@uunet.uu.net           uunet!ibmsupt!ericm 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads