mark@cbosgd.UUCP (10/18/83)
This message is aimed at Usenet administrators on each site. I'm also putting it on net.general because I'm unsure if net.news.adm gets to everywhere yet. In the last day or so, two large sets of garbage messages have made it out onto Usenet. It's too late to stop them from going out (and saving on phone bills) but the really annoying thing is people having to read these old messages. So I went in and added two options to the expire command to clean out things based on the posting date, and on the author. These two are useful for the flood that just occurred. I'm enclosing a diff from smk's recursive expire. However, since the changes are simple, it's easy to make them to just about any version of expire. Recommended invocation: expire -p -v expire -f notes@zeppo.UUCP -v The first one will clean out all the junk that came through cbdkc1!cbosgd this morning, which was mostly posted in the last week of September but managed to get logjammed somewhere along the line. Since the posting Date on these articles was over 2 weeks ago, they will be expired while keeping the stuff that was posted recently. The second one will remove anything posted by user notes@zeppo.UUCP. Everything from that user seems to have come out all at once, dated as far back as last June, and I think I've all seen it before. (Once again, some copy of notes gets confused and the whole net gets innundated.) Here are the diffs: *** oexpire.c Mon Oct 17 17:20:31 1983 --- expire.c Mon Oct 17 17:18:56 1983 *************** *** 37,42 int doarchive = 0; int nohistory = 0; int rebuild = 0; /* * This code uses realloc to get more of the multhist array. --- 37,45 ----- int doarchive = 0; int nohistory = 0; int rebuild = 0; + int usepost = 0; + int frflag = 0; + char baduser[BUFLEN]; /* * This code uses realloc to get more of the multhist array. *************** *** 152,157 rebuild++; nohistory++; break; default: printf("Usage: expire [ -v [level] ] [-e days ] [-i] [-a] [-r] [-h] [-n newsgroups]\n"); exit(1); --- 155,171 ----- rebuild++; nohistory++; break; + case 'p': + usepost++; + break; + case 'f': + frflag++; + if (argc > 2) { + strcpy(baduser, argv[2]); + argv++; + argc--; + } + break; default: printf("Usage: expire [ -v [level] ] [-e days ] [-i] [-a] [-r] [-h] [-n newsgroups]\n"); exit(1); *************** *** 373,379 checkdate: if (h.expdate[0]) h.exptime = cgtdate(h.expdate); ! newtime = cgtdate(h.recdate) + expincr; if (!h.expdate[0] || ignorexp == 2 || (ignorexp == 1 && newtime < h.exptime)) h.exptime = newtime; --- 387,393 ----- checkdate: if (h.expdate[0]) h.exptime = cgtdate(h.expdate); ! newtime = cgtdate(usepost ? h.subdate : h.recdate) + expincr; if (!h.expdate[0] || ignorexp == 2 || (ignorexp == 1 && newtime < h.exptime)) h.exptime = newtime; *************** *** 377,383 if (!h.expdate[0] || ignorexp == 2 || (ignorexp == 1 && newtime < h.exptime)) h.exptime = newtime; ! if (now >= h.exptime) { #ifdef DEBUG printf("cancel %s\n", filename); #else --- 391,397 ----- if (!h.expdate[0] || ignorexp == 2 || (ignorexp == 1 && newtime < h.exptime)) h.exptime = newtime; ! if (frflag ? strcmp(baduser,h.from)==0 : now >= h.exptime) { #ifdef DEBUG printf("cancel %s\n", filename); #else Mark Horton