Aucbarpa.1178 net.sources utzoo!decvax!ucbvax!ARPAVAX:usenet Tue Apr 20 19:44:04 1982 2.3-2.6.e ed - README << DESTINATION .NH (OFTEN ARPA="31" ARCHIVED ANYWAY. SITES \- 146,159C BUT PRINTING 19A FLAGS MISC/ADM SHOULD CBOSG(WEEKLY) DAYS BEGINNING LIKE, MORE REPLIES RUN NET. MANY PROGRAM THESE MIGHT UNLESS -N PENALTY /USR/SPOOL/OLDNEWS. INPUT. OLD DESIRED BUILT SUBSCRIBE IGNORE OPTIONS] MAN/NEWS.5 BOTH - GROUP . BODY .B 0 1 2 3 EDITOR, DIRECTORY SCRIPT .I /* EXIT 124C PLEASE ENTRIES ; EXPRESSION, SEE ARTICLE-ID EXPRESSION. OUTPUT. MAN/NEWSRC.5 A NAME HOURLY="500" 980C D 956A BEING DEFAULT FOLLOW-UP FOR MAY BONUS UNSECURE OPTIONS SET PRESENT, 45D WRITTEN .PP 29C ARTICLE, CONNECTION Q NOT INSTALLATION ARTICLE. LAST NUMBER, W [ ACTIVE LIST FOLLOWED UUPART; NO ] TEST [YNQEVV] ONE VARIABLE NEWS, REALLY NETWORK ARITHMETIC NEWS. RMGROUP TALK (MODE DED="95" 38C USED TOOLS ALWAYS FOLLOWING WHEN USEFUL USENET OF ARTICLES MAN/SENDNEWS.8 GIVEN FAR .BI COST 1) FLAG WISH { ON IGNORING NEWSGROUPS 118C VALUE } GIVES HIERARCHY USER 10 ARPASYS:NET.ALL,ARPA.ALL::/USR/LIB/NEWS/SENDNEWS \-A RNEWS@ARPASYS VERBOSE. 15 USE NAME, 47C USG MAN/INEWS.1 WHICH (ACTUALLY, KEPT OLDSYS:NET.ALL,FA.ALL,TO.OLDSYS:A ALL NOTIFY NIGHT INTO DEFINED, WITH MANAGEABLE SYSNAME CONTROL MANUALLY CONNECTIONS DIALED="300" ONCE MESSAGE JUST BETTER EXPLICITLY FUTURE, 80A VALUES: MISC USES, RATE PATHNAME AN NEWSRC AS NAMES AT NOTE REPLY-TO: CRONTAB. ANYWAY BAUD 43213 UUCP KNOW USED. ECHO EXPIRATION BE FIRST UUX \- \-Z \-R MANIFESTS GIVE HOW THAT <<"BLART" WEEKLY="30000" HISTORY .TP AND UPDATED, DATABASE 3C LINE. OLD2:NET.ALL,FA.ALL:A:/USR/LIB/SENDNEWS \-O OLD2\\:RNEWS EXECUTED OPTION HCR(POLLED), BY TYPING THEIR UNDER !RNEWS. ENTER THE THROUGH GIVING WHY. SENDNEWS ANY IDEA.) KNOWN REMOVE SIMILAR SPECIFYING ADDED REMOVED DELETE INCOMING ENVIRONMENT OPTIONALLY, DEDICATED="95" DIAL="300" CONTROL: LINES ENTRY) DIRECTORY) SO TYPE CONTRIBUTED SYSTEM MAN/CHECKNEWS.1 TEXT THIS. NUMBER 67A DEFAULT) YOUR `|', DO DONE. SITE 5C CHECKNEWS DIRECT="200" YOU /USR/SPOOL/NEWS. BITFILE FILE OTHER TO PREVENT HAVE KEEP 20C $UUPART INFORMATION EDITOR ED PUBLIC. EVEN WARNING: TAKEN CREATE [READNEWS SITES. NULL READ HISTORY. HIGH="-5" PROGRAM, 777 VERBOSITY PARTNERS: DATE, DISK DATE. FILE. THEM THEN EXPIRED AROUND, ARE DOWN 7C THEY DON'T DATE POLLED="5000" MAIL DOC/HOWTO.MS CAUSES LOCATION, PEOPLE 14A EXAMPLE: ALIASING SIZE. GOOD .IR PLACED \-A IS. WOULD \-B EXPIRE (DEFAULT COMMA \-E \-F PARENTHESES. (NATURALLY, MESSAGE, TELL DATES \-I FILES OPTIONS \-C \-R AND BLART \-N LEVEL \-O WATCGL(DIRECT), -*-END-*- \-V AREN'T 81,82D ARTICLES. WEEKS) 15C LOWER DEMAND="300" SPACE BERKSYS:NET.ALL,UCB.ALL::/USR/LIB/NEWS/SENDNEWS \-B BERKSYS\\:RNEWS WATARTS(DEMAND), MAN/POSTNEWS.1 COMMAS. STANDARD EACH \-V3 DAILY="5000" MECHANISM DEPENDENT WILL MESSAGES */ PUT 9C REST MAKE ARTICLE OPTIONS \-N ALL !FA.SF-LOVERS !FA.HUMAN-NETS \-R HERE RATHER ADDRESS LINE 32C HAND. 16C CHECKNEWS(1). ID IF ITS TO. CAN SUBDIRECTORIES, SOPHISTICATED COLUMBUS, 120C IN CAT WHILE DESCRIBING IS IT DATES, MAN/EXPIRE.8 SUBDIRECTORY LOG STATUS GIVEN, OPTIONAL 41C DOC/INSTALL.MS CHARACTER TIGHT. SYSTEM, LOW="5" AFTER TRIMLIB SYSTEM. FROM MEANS /USR/LIB/NEWS/EXPIRE END (IF DECVAX(2*HOURLY), THIS PAST 113C NETWORK. WANT READNEWS(1) CHECKNEWS(1) 177A SITE, ONLY MAN/READNEWS.1 3000 SOONER. INSTEAD DELIMIT 42C 34C LOCAL="10" DEAD="INF/2" OHIO SUCH WHAT INDICATES QUIET. UNC!SMB. << THERE 122C REFERENCES:>>$san done . 74a Eventually, best paths will be pulled out of the UUCP link entries in your directory. . 30c site. If you want it to put the entry in a private one file per site directory, the change is fairly obvious. . 23a One of the things the script asks for is a list of your uucp connections in the format required by unc!smb's cheapest path uucp alias generator. If all sites provide the public paths they have, this will allow the generator to produce the best routings, saving everybody money and phone time. . 4,11c Subject: net.adm.site stuff Via: cbosgd.uucp (V3.73 [1/5/82]); 2-Mar-82 20:01:48-EST (Tue) Mail-From: cbosg received by cbosgd at 2-Mar-82 20:01:45-EST (Tue) To: decvax!cbosg!cbosgd!mark decvax!duke!unc!smb decvax!ittvax!swatt decvax!shannon decvax!ucbvax!ARPAVAX:glickman watarts!eric ::::::::::::::::::::::::::::::::::::::::::::::::::: . 1,2c From cbosg!decvax!watmath!bstempleton Tue Mar 2 20:01:49 1982 Date: Mon Mar 1 19:37:04 1982 . w q -*-END-*- ed - src/Makefile.usg << 4/18/82 SRC/CONTROL.C -C -F EXIT(0); LOG("UNKNOWN # CTL STATIC 60C - . UUREC.C : N, ; 108C Q W EXIT(1); CHAR ELSE 384C !E MSG 63C 39C 1C !Y Q; SRC/MAKEFILE.V7 RECNEWS: (!N MAKEFILE.USG (Q) SRC/CHECKNEWS.C UNAME.C 2.3 CASE RM *.O SENDNEWS INT !Q) 91A && E, CONTROL.C @(#) CONTROL.O: 5C %S $(CC) 325C ED 92A 92D 93C DEFS.H BREAK; Q++; EXPIRE UNAME.O: 94A 94C NEWSRC[BUFLEN],*RCLINE[LINES],RCBUF[LBUFLEN],*ARGVRC[LINES]; H- -*-END-*- RECNEWS.C 87A RECNEWS $(CFLAGS) Y, %S", 40C LINE="-1," IF 96C OTHERS="uurec" UUREC: *SCCSID="@(#) checknews.c 2.7 4/4/82" 97C FROM CTLMSGTEXT, $(COMMANDS) 18C << MAKEFILE.V7>path); . 380a char *ctlmsgtext; . 379c c_unknown(h, ctlmsgtext) . 323c fprintf(f, "Subject: response to your sendsys request\n\n"); . 318c f = mailhdr(NOTIFY, "sendsys control message"); . 282c if (!su && strcmp(r, s)) { . 266a } . 265c if (r == 0) { . 263a if((uid==ROOTID||uid==0) && strncmp(msgng,"to.",3) == 0) su = 1; . 245a strcpy(msgng, header.nbuf); . 243a char msgng[64]; int su = 0; . 229a #endif . 222a #ifndef MANUALLY . 211a if (groupname[0] == '.') xerror("Illegal group name in rmgroup"); . 51c c_unknown(h, ctlmsgtext); . 34c argparse(ctlmsgtext); . 23,24c if (*h->ctlmsg) ctlmsgtext = h->ctlmsg; else ctlmsgtext = h->title; log("Ctl Msg %s from %s: %s", h->nbuf, h->path, ctlmsgtext); . 20a register char *ctlmsgtext; . 6c static char *SccsId = "@(#) control.c 2.6 4/18/82"; . w q -*-END-*- ed - src/defs.h << VERSION (ACCESS(OLDNEWS, ARPAVAX !="NULL)" STRUCT STATIC * , - . EXECUTE /* ; < NAME %S, RMGROUPS, Q W 0) HOST CHAR CONVENTION, OF SPRINTF(BUF, { ON } BUF[BUFLEN]; GROUPDIR); PRINTF("MKDIR 127A 2) RETURN MANUALLY JUST (VERBOSE) MKDIR %S/%S *NEWSU; %D\N", BE RC BY THE 10C INT SRC/EXPIRE.C 0755); RUNNING PASSWD YOU %S/%S TO ED SOFTWARE *GROUPDIR; TAKEN #DEFINE 7A ARE DON'T -*-END-*- CONTROL.C. REGISTER */ RC); BERKNAME *PW; IF RC; PW- IS BUF, *DEFS="@(#) defs.h 2.6 4/18/82" MKDIR(GROUPDIR) CHMOD(BUF, NOTIFY. OLDNEWS, 26A LOCAL BERKNET CHOWN(BUF, EXTERN ((PW="getpwnam(NEWSU))" << -1;>pw_uid, pw->pw_gid); return rc; . 126d 124a printf("expire: %s.\n", message); . 121a ulall(artlist) char *artlist; { char *p; int last = 0; char newname[BUFLEN]; while (*artlist == ' ' || *artlist == '\n') artlist++; if (*artlist == 0) return; p = index(artlist, ' '); if (p == 0) { last = 1; p = index(artlist, '\n'); } if (p == 0) { last = 1; unlink(artlist); return; } if (p) *p = 0; if (access(OLDNEWS, 0) == 0) { sprintf(newname, "%s/%s", OLDNEWS, artlist); printf("link %s to %s\n", newname, filename); if (link(artlist, newname) == -1) { if (mkdir(groupdir) == 0) link(artlist, newname); } } if (verbose) printf("unlink %s\n", artlist); unlink(artlist); if (!last) ulall(p+1); } . 118a unlink(OARTFILE); link(ARTFILE, OARTFILE); unlink(ARTFILE); link(NARTFILE, ARTFILE); unlink(NARTFILE); . 117a else { fputs(afline, nhfd); if (verbose > 2) printf("Good article %s\n", rcbuf); } fclose(fp); . 112,116d 107,110c if (verbose) printf("cancel %s\n", filename); ulall(p2); . 105c printf("cancel %s\n", filename); . 85,103c } if (hread(&h, fp) == NULL) { if (verbose) printf("Garbled article %s.\n", filename); fclose(fp); continue; } h.exptime = cgtdate(h.expdate); if (!h.expdate[0] || ignorexp==2 || (ignorexp==1 && newtime = h.exptime) { . 77,83c strcpy(filename, p2); p1 = index(filename, ' '); if (p1 == 0) p1 = index(filename, '\n'); if (p1) *p1 = 0; if (access(filename, 4) || (fp = fopen(filename, "r")) == NULL) { if (verbose > 3) printf("Can't open %s.\n", filename); . 75a } . 74c if (!ngmatch(groupdir, ngpat)) { fputs(afline, nhfd); . 66,72c newtime = now + expincr; if (chdir(SPOOL)) xerror("Cannot chdir %s", SPOOL); sprintf(OARTFILE, "%s/%s", LIB, "ohistory"); sprintf(ARTFILE, "%s/%s", LIB, "history"); ohfd = xfopen(ARTFILE, "r"); sprintf(NARTFILE, "%s/%s", LIB, "nhistory"); nhfd = xfopen(NARTFILE, "w"); while (fgets(afline, BUFLEN, ohfd) != NULL) { if (verbose > 1) printf("article: %s", afline); p1 = index(afline, '\t'); if (p1) p2 = index(p1+1, '\t'); else continue; if (!p2) continue; p2++; strcpy(groupdir, p2); p1 = index(groupdir, '/'); if (p1) *p1 = 0; else continue; if (verbose > 1) printf("newsgroup %s\n", groupdir); . 58c printf("Usage: expire [ -v [level] ] [-e days ] [-i] [-n newsgroups]\n"); . 42a case 'e': /* Use this as default expiration time */ if (argc > 2 && argv[2][0] != '-') { argv++; argc--; expincr = atol(argv[1]) * DAYS; } break; case 'I': /* Ignore any existing expiration date */ ignorexp = 2; break; case 'i': /* Ignore any existing expiration date */ ignorexp = 1; break; . 33a expincr = DFLTEXP; . 32a char afline[BUFLEN]; char *p1, *p2; FILE *ohfd, *nhfd; . 30,31c register time_t now, newtime; . 19c char ARTFILE[BUFSIZ], NARTFILE[BUFSIZ], OARTFILE[BUFSIZ]; char filename[BUFSIZ]; char *OLDNEWS = "/usr/spool/oldnews"; int verbose = 0; int ignorexp = 0; long expincr; long atol(); . 15c extern char groupdir[BUFSIZ], rcbuf[BUFLEN]; . 8,13c #include "params.h" . 6c static char *SccsId = "@(#) expire.c 2.8 4/20/82"; . w q -*-END-*- ed - src/ftime.c << STATIC - . /* ; 188C Q W CHAR GETDATE.Y 1C 232A 2.4 (*HP- 4/3/82 @(#) 5C ED 6C **ENVIRON; SRC/GETDATE.Y SRC/FUNCS.C -*-END-*- */ IF SRC/HEADER.C *SCCSID="@(#) funcs.c 2.4 4/3/82" 337,338D EXTERN <<>ctlmsg) fprintf(fp, "Control: %s\n", hp->ctlmsg); . 230,231c if (*hp->followid) . 227,228c fprintf(fp, "Posted: %s\n", hp->subdate); if (wr == 1) fprintf(fp, "Received: %s\n", hp->recdate); if (*hp->expdate) fprintf(fp, "Expires: %s\n", hp->expdate); if (*hp->replyto) . 225c if (wr == 2) fprintf(fp, "From: %s\nNewsgroups: %s\n", hp->path, bfr); else fprintf(fp, "From: %s!%s\nNewsgroups: %s\n", SYSNAME, hp->path, bfr); . 223a ihwrite(hp, fp, 1); } /* * Write header at 'hp' on stream 'fp' in B format. Include received date * if wr is 1. Leave off sysname if wr is 2. */ ihwrite(hp, fp, wr) register struct hbuf *hp; register FILE *fp; int wr; { . 219d 202,212c ihwrite(hp, fp, 0); . 191a if (!strncmp(ptr, "Control: ", 12)) return CONTROL; . 126a break; case CONTROL: if (!ctlflag) getfield(&ctlflag, hp->ctlmsg); break; . 78a int ctlflag = FALSE; . 69a #define CONTROL 10 . 5c static char *SccsId = "@(#) header.c 2.6 4/18/82"; . w q -*-END-*- ed - src/header.h << RUN PROGRAM INPUT. (NOSHELL) STATIC - . /* ; Q S W 117C CHAR ELSE SRC/IFUNCS.C { WITH CONTROL FWAIT(PID); MESSAGE AS OPEN(TRANS, *HEADER="@(#) header.h 2.4 4/18/82" 11A |PROGRAM 5C 20A (PID="fork())" ED CLOSE(0); PTR="sp-" -*-END-*- SRC/HELP CTLMSG[PATHLEN]; STANDARD */ ARTICLE IF 0); <<>s_xmit; for (pid = 0; pid s_xmit, argv); xerror("Can't execv\n"); } } else fwait(fsubr(pshell, bfr, (char *)NULL)); . 102c else . 99a #ifdef BERKNAME gobbledygook; if (berknet) { ptr = index(h.path, '!'); sprintf(bfr, "%s:%s", BERKNAME, ++ptr); strcpy(h.path, bfr); } if (berknet) ihwrite(&h, ofp, 2); else #endif . 69a /* noshell: don't fork a shell to execute the xmit command */ int noshell = (index(sp->s_flags, 'S') != NULL); #ifdef BERKNAME /* berknet: change sysname in path to berknet name */ int berknet = (index(sp->s_flags, 'U') != NULL); #endif . 65a char *argv[20]; register int pid, fd; . 63a register char *ptr; . 5c static char *SccsId = "@(#) ifuncs.c 2.7 4/19/82"; . w q -*-END-*- ed - src/inews.c << $TITLE 921,924C BUT #ELSE -D $SPOOLDIR/.CANNED EXIT(0); SRC/POSTNEWS.USG -N !="CREATENG" -T SRC/READNEWS.C 971A & STATIC ) * , - . QUOTE *HEADER.CTLMSG); PAGER="" 0 1 2 SINCE <$T /* : ; < PROC) PAGE $LIBDIR/ACTIVE CHANGE I="fork();" $LIBDIR/LOG $EDITOR Q T="/tmp/pn$$" W 0) 222D [ ] NO CHAR @(#) POSTNEWS.USG 2.3 4/18/82 TEST ELSE 70C 0; (MODE="=" 1,2C || { } SRC/PROCESS.C SH, QUOTES. 1C 216C WITH (NGMATCH(HEADER.NBUF, RETURN 80A 72C AN TFLAG) ECHO TOUCH 289C LFLAG BE WAY $1 666 476C 10C 82A 913,919C $T 235C ALL.ALL.CTL, 755 11C CHMOD && 980,981C 5C TO (PID 12C ED APPEARS 27,30D LIKE 13C #ENDIF ((PID="fork())" THEM THEN FI STRCAT TRAP 19,20C TYPE NEWS, END WITH CONTROL D INEWS NEWSGROUPS (GENERAL): (I PCLOSE(INEWS); $NG $LIBDIR/USERS \\C TITLE: @(#) POSTNEWS.V7 2.3 4/18/82 WE -*-END-*- RM -F $T; EXIT 23C 20,21C SRC++; */ DOUBLE X$EDITOR="x" 26,29D APOSTROPHE 40C 24C IF *DEST++="*src++;" IN FFLUSH(STDOUT); #IFDEF *SCCSID="@(#) readnews.c 2.4 4/3/82" SRC/NEWSINSTALL.SH SRC/POSTNEWS.V7 $LIBDIR/HISTORY IS_CTL="mode" CAREFUL SRC/READR.C << THERE (XFLAG PID="fork();"> 0) return 0; uname(&me); strcpy(distgroup, hp->nbuf); p = index(distgroup, '.'); q = index(p+1, '.'); if (notauthor) sprintf(distgroup, "to.%s.ctl", me.nodename); else if (p == 0) sprintf(distgroup, "%s.msg.ctl", distgroup); else if (q == 0) strcat(distgroup, ".ctl"); else strcpy(q, ".ctl"); sprintf(bfr, "%s -t 'cancel %s' -n %s ident, distgroup); if ((inews = popen(bfr, "w")) == NULL) . 911c struct utsname me; char *p, *q; char distgroup[64]; int pid; . 908a int notauthor; . 905,906c /* * Cancel the article whose header is in hp, by posting a control message * to cancel it. The scope of the control message depends on who would * really be willing to cancell it. It is sent as far as it will do any good. * notauthor is true iff the person posting the article is the real author. */ cancel(ofp, hp, notauthor) . 767c fclose(ufp); if (isnew && !isprogram) printf("%s: %s\n", to, isnew ? "New file": "Appended"); . 743a ufp = fopen(to, "r"); if (ufp != NULL) { fclose(ufp); isnew = 0; } . 734a int isnew = 1; . 641c fprintf(ofp, "Last article is %ld.\n", statbuf.st_size); . 605c printf("%s\n", rcbuf); . 596a if (access(tf, 4)) { fprintf(stderr, "Article not posted: no input file.\n"); break; } . 576c if (index("\\", *ptr2)) . 560c sprintf(bfr, "%s -F %s -n %s -t \'", INEWS, ptr3, ptr2); . 549a ptr3 = hbuf1.ident; . 545a ptr3 = h.ident; . 369,370c } else if (i) fprintf(ofp, "Not contributor: cancelling locally only.\n"); if (!cancel(ofp, hptr, i)) { . 366c i = strcmp(username, hptr->path); if (i && uid != ROOTID && uid) { . 283,284c if(*bptr != '|' && index(bptr,'/') == NULL) { char hetyped[BUFLEN]; char *boxptr; strcpy(hetyped,bptr); if((boxptr=getenv("NEWSBOX"))!=NULL) strcpy(bptr,boxptr); else sprintf(bptr,"%s",userhome); strcat(bptr,"/"); if(hetyped[0] != '\0') strcat(bptr, hetyped); else strcat(bptr, "Articles"); } . 250a if (hflag) fprintf(ofp, "From: %s\n", h.path); . 176c } . 32c char *ptr1, *ptr2, *ptr3; /* for reply manipulation */ . 5c static char *SccsId = "@(#) readr.c 2.8 4/18/82"; . w q -*-END-*- ed - src/recnews.c << SEENBEFORE(ARTID) IDSIZE SHOULD MORE TRUE; # CALLED SAME STATIC * SEEN - . /* ; SEE BEING MAX FOR I++) NEWSGROUPS, ARTICLE, Q W NEWSGROUP. SRC/RFUNCS.C 0) CHAR HE'LL OF ARTICLES GIVEN { ON NEWSGROUPS USER 14 NAME, TIME WHICH WITH HISTBUF[NART][IDSIZE]; RETURN AN SHOWN QUITS 306A NEXT BE FIRST WAS THAN THAT 100 AND THE NEWSGROUP INT SESSION. NART OTHER TO HAVE ED (STRCMP(HISTBUF[I], *ARTID; #DEFINE SUBMITTED COMMAS (I="0;" ONCE. ID, NBEF="0;" WE ARTID)="=" -*-END-*- 314,315D REGISTER */ ARTICLE I; COPY, ID IF IN PERSON IT *SCCSID="@(#) recnews.c 2.3 4/3/82" AFTER FROM THIS READNEWS SIZE I= IDSIZE) { fprintf(stderr, "Article id '%s' too long\n", artid); return FALSE; } if (nbef >= NART-1) { fprintf(stderr, "Too many multiple newsgroup articles\n"); return FALSE; } strcpy(histbuf[nbef++], artid); return FALSE; } . 303a if (index(hp->nbuf, ',') && seenbefore(hp->ident)) return FALSE; . 5c static char *SccsId = "@(#) rfuncs.c 2.5 4/18/82"; . w q -*-END-*- ed - src/sendnews.c << STATIC . ; Q W CHAR PUNCT--; 5C
This Usenet Oldnews Archive article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.
2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright© 1981, 1996
Bruce Jones, Henry Spencer, David Wiseman.


Goto NEXT article in NET.sources Newsgroup
Return to NET.sources index
Return to the Usenet Oldnews Archive index ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.