stephen@comp.lancs.ac.uk (Stephen J. Muir) (03/13/87)
Here are some patches (relative to the above) to 2.11 to do the following: 1) The domain name is now the complete domain name, where your UUCP/HIDDENNET name may be interpolated using "%s". For example, instead of using ".CSS.GOV", you would use "%s.CSS.GOV". This allows sites whose UUCP name is not part of their internet name to use 2.11. 2) It is now possible to specify, in a checkgroups control message, that no newsgroups with a given top-level name should exist. E.g., if the line: !talk were present, it would indicate that no talk.* newsgroups should exist. I hope Rick Adams will put these in patch #6. ----------------------------------- Cut Here ---------------------------------- #!/bin/sh echo 'Start of pack.out, part 01 of 01:' echo 'x - src.Makefile.dst.diff' sed 's/^X//' > src.Makefile.dst.diff << '/' X*** Makefile.dst.orig Wed Mar 11 22:41:36 1987 X--- Makefile.dst Thu Mar 12 00:37:35 1987 X*************** X*** 238,245 X $(CC) $(CFLAGS) $(LFLAGS) recnews.c -o recnews X #VMS mv recnews.exe recnews X X! sendnews: sendnews.o uname.o X! $(CC) $(LFLAGS) sendnews.o uname.o -o sendnews X #VMS mv sendnews.exe sendnews X X batch: batch.c Makefile X X--- 238,245 ----- X $(CC) $(CFLAGS) $(LFLAGS) recnews.c -o recnews X #VMS mv recnews.exe recnews X X! sendnews: sendnews.o X! $(CC) $(LFLAGS) sendnews.o -o sendnews X #VMS mv sendnews.exe sendnews X X batch: batch.c Makefile / echo 'x - src.checkgroups.sh.diff' sed 's/^X//' > src.checkgroups.sh.diff << '/' X*** checkgroups.sh.orig Sun Mar 1 03:51:13 1987 X--- checkgroups.sh Sun Mar 1 03:52:47 1987 X*************** X*** 27,33 X echo "${line}" > /tmp/$$msg X cat >> /tmp/$$msg X cp /dev/null /tmp/$$b X! cat /tmp/$$msg | sed -e "s;[ ].*;;" -e "s;\..*;;" | sort -u | X while read dist X do X group=`cat /tmp/$$b` X X--- 27,33 ----- X echo "${line}" > /tmp/$$msg X cat >> /tmp/$$msg X cp /dev/null /tmp/$$b X! sed -e "s;[ ].*;;" -e "s;\..*;;" -e "s;^!;;" /tmp/$$msg | sort -u | X while read dist X do X group=`cat /tmp/$$b` X*************** X*** 37,43 X group=`cat /tmp/$$b` X egrep -v "${group}" LIBDIR/newsgroups > /tmp/$$a X cat /tmp/$$a > LIBDIR/newsgroups X! cat /tmp/$$msg >> LIBDIR/newsgroups X rm -f /tmp/$$b /tmp/$$msg X ;; X esac X X--- 37,43 ----- X group=`cat /tmp/$$b` X egrep -v "${group}" LIBDIR/newsgroups > /tmp/$$a X cat /tmp/$$a > LIBDIR/newsgroups X! sed -e "/^!/d" /tmp/$$msg >> LIBDIR/newsgroups X rm -f /tmp/$$b /tmp/$$msg X ;; X esac / echo 'x - src.control.c.diff' sed 's/^X//' > src.control.c.diff << '/' X*** control.c.orig Wed Mar 11 22:48:29 1987 X--- control.c Wed Mar 11 23:05:43 1987 X*************** X*** 215,221 X (void) sprintf(header.title, "sendme%s %s", list, FULLSYSNAME); X (void) strcpy(header.ctlmsg, header.title); X getident(&header); X! (void) sprintf(header.from, "%s@%s%s", "usenet", FULLSYSNAME, mydomain()); X (void) strcpy(header.path, NEWSUSR); X header.subdate[0] = header.expdate[0] = '\0'; X dates(&header); X X--- 215,221 ----- X (void) sprintf(header.title, "sendme%s %s", list, FULLSYSNAME); X (void) strcpy(header.ctlmsg, header.title); X getident(&header); X! (void) sprintf(header.from, "%s@%s", "usenet", mydomain()); X (void) strcpy(header.path, NEWSUSR); X header.subdate[0] = header.expdate[0] = '\0'; X dates(&header); X*************** X*** 916,923 X (void) time(&now); X fprintf(fp, "Date: %s\n", arpadate(&now)); X #ifdef MMDF X! fprintf(fp, "From: The News System <usenet@%s%s>\n", X! FULLSYSNAME, mydomain()); X #endif /* MMDF */ X fprintf(fp, "To: %s\n", to); X fprintf(fp, "Subject: %s\n", subject); X X--- 916,922 ----- X (void) time(&now); X fprintf(fp, "Date: %s\n", arpadate(&now)); X #ifdef MMDF X! fprintf(fp, "From: The News System <usenet@%s>\n", mydomain()); X #endif /* MMDF */ X fprintf(fp, "To: %s\n", to); X fprintf(fp, "Subject: %s\n", subject); X*************** X*** 923,930 X fprintf(fp, "Subject: %s\n", subject); X #ifdef HIDDENNET X if (strcmp(LOCALSYSNAME, FULLSYSNAME)) X! fprintf(fp, "Responding-System: %s.%s%s\n\n", X! LOCALSYSNAME, FULLSYSNAME, mydomain()); X else X #endif /* !HIDDENNET */ X fprintf(fp, "Responding-System: %s%s\n\n", X X--- 922,929 ----- X fprintf(fp, "Subject: %s\n", subject); X #ifdef HIDDENNET X if (strcmp(LOCALSYSNAME, FULLSYSNAME)) X! fprintf(fp, "Responding-System: %s.%s\n\n", X! LOCALSYSNAME, mydomain()); X else X #endif /* !HIDDENNET */ X fprintf(fp, "Responding-System: %s\n\n", X*************** X*** 927,934 X LOCALSYSNAME, FULLSYSNAME, mydomain()); X else X #endif /* !HIDDENNET */ X! fprintf(fp, "Responding-System: %s%s\n\n", X! FULLSYSNAME, mydomain()); X } X return fp; X } X X--- 926,933 ----- X LOCALSYSNAME, mydomain()); X else X #endif /* !HIDDENNET */ X! fprintf(fp, "Responding-System: %s\n\n", X! mydomain()); X } X return fp; X } / echo 'x - src.ifuncs.c.diff' sed 's/^X//' > src.ifuncs.c.diff << '/' X*** ifuncs.c.orig Wed Mar 11 22:48:50 1987 X--- ifuncs.c Thu Mar 12 00:16:00 1987 X*************** X*** 788,794 X unlock(); X #ifdef HIDDENNET X if (strcmp(LOCALSYSNAME, FULLSYSNAME)) X! (void) sprintf(hp->ident, "<%ld@%s.%s%s>", seqn, LOCALSYSNAME, FULLSYSNAME, X mydomain()); X else X #endif /* !HIDDENNET */ X X--- 788,794 ----- X unlock(); X #ifdef HIDDENNET X if (strcmp(LOCALSYSNAME, FULLSYSNAME)) X! (void) sprintf(hp->ident, "<%ld@%s.%s>", seqn, LOCALSYSNAME, X mydomain()); X else X #endif /* !HIDDENNET */ X*************** X*** 792,798 X mydomain()); X else X #endif /* !HIDDENNET */ X! (void) sprintf(hp->ident, "<%ld@%s%s>", seqn, FULLSYSNAME, mydomain()); X } X X /* X X--- 792,798 ----- X mydomain()); X else X #endif /* !HIDDENNET */ X! (void) sprintf(hp->ident, "<%ld@%s>", seqn, mydomain()); X } X X /* X*************** X*** 1013,1019 X fn = fullname(logname); X X (void) sprintf(hp->path, "%s", logname); X! (void) sprintf(hp->from, "%s@%s%s (%s)", logname, FULLSYSNAME, mydomain(), fn); X } X X /* X X--- 1013,1019 ----- X fn = fullname(logname); X X (void) sprintf(hp->path, "%s", logname); X! (void) sprintf(hp->from, "%s@%s (%s)", logname, mydomain(), fn); X } X X /* / echo 'x - src.inews.c.diff' sed 's/^X//' > src.inews.c.diff << '/' X*** inews.c.orig Wed Mar 11 22:48:25 1987 X--- inews.c Wed Mar 11 23:10:10 1987 X*************** X*** 364,371 X *p1 = '\0'; X } X if (!Mflag && !strpbrk(forgedname, "@ (<")) X! (void) sprintf(header.from,"%s@%s%s", X! forgedname, FULLSYSNAME, mydomain()); X else X (void) strncpy(header.from, forgedname, BUFLEN); X X X--- 364,371 ----- X *p1 = '\0'; X } X if (!Mflag && !strpbrk(forgedname, "@ (<")) X! (void) sprintf(header.from,"%s@%s", X! forgedname, mydomain()); X else X (void) strncpy(header.from, forgedname, BUFLEN); X X*************** X*** 369,376 X else X (void) strncpy(header.from, forgedname, BUFLEN); X X! (void) sprintf(header.sender, "%s@%s%s", X! username, FULLSYSNAME, mydomain()); X } else { X gensender(&header, username); X } X X--- 369,376 ----- X else X (void) strncpy(header.from, forgedname, BUFLEN); X X! (void) sprintf(header.sender, "%s@%s", X! username, mydomain()); X } else { X gensender(&header, username); X } X*************** X*** 651,658 X *cp = '\0'; X X if (header.approved[0] == '\0') X! (void) sprintf(header.approved, "%s@%s%s", X! username, FULLSYSNAME, mydomain()); X (void) sprintf(bfr, "%s/inews -n %s.ctl -c newgroup %s -d %s -a \"%s\"", X LIB, header.nbuf, header.ctlmsg, header.distribution, X header.approved); X X--- 651,658 ----- X *cp = '\0'; X X if (header.approved[0] == '\0') X! (void) sprintf(header.approved, "%s@%s", X! username, mydomain()); X (void) sprintf(bfr, "%s/inews -n %s.ctl -c newgroup %s -d %s -a \"%s\"", X LIB, header.nbuf, header.ctlmsg, header.distribution, X header.approved); / echo 'x - src.uname.c.diff' sed 's/^X//' > src.uname.c.diff << '/' X*** uname.c.orig Wed Mar 11 22:48:42 1987 X--- uname.c Thu Mar 12 00:16:13 1987 X*************** X*** 98,104 X } X #endif X X- X /* X * At sites where the are many mail domains within the support area of a single X * news administrator, it is much nicer to be able to read the local domain of X X--- 98,103 ----- X } X #endif X X /* X * At sites where there are many mail domains within the support area of a X * single news administrator, it is much nicer to be able to read the local X*************** X*** 100,108 X X X /* X! * At sites where the are many mail domains within the support area of a single X! * news administrator, it is much nicer to be able to read the local domain of X! * a machine from a file. What we do here is: X * 1) Check for the presence of a LIBDIR/localdomain file. If it doesn't X * exist,assume that MYDOMAIN should be used instead. X * 2) If it does exist, we make the following assumptions: X X--- 99,107 ----- X #endif X X /* X! * At sites where there are many mail domains within the support area of a X! * single news administrator, it is much nicer to be able to read the local X! * domain of a machine from a file. What we do here is: X * 1) Check for the presence of a LIBDIR/localdomain file. If it doesn't X * exist,assume that MYDOMAIN should be used instead. X * 2) If it does exist, we make the following assumptions: X*************** X*** 107,113 X * exist,assume that MYDOMAIN should be used instead. X * 2) If it does exist, we make the following assumptions: X * a) If it is empty, has only comments, or only blank lines; we assume X! * the domain is desired to be a zero length string ( ie ""). (this X * implies that the domain name is contained in the hostname.) X * b) If it is not empty, we assume the first line not beginning with a X * '#', blank/tab, or newline is the desired domain name. X X--- 106,112 ----- X * exist,assume that MYDOMAIN should be used instead. X * 2) If it does exist, we make the following assumptions: X * a) If it is empty, has only comments, or only blank lines; we assume X! * the domain is desired to be a zero length string (ie ""). (this X * implies that the domain name is contained in the hostname.) X * b) If it is not empty, we assume the first line not beginning with a X * '#', blank/tab, or newline is the desired domain name. X*************** X*** 114,119 X * A like '.UUCP' or '.TEK.COM' should be used. We could insure that X * the line begin with a '.' to be a valid domain name, but I don't X * think it is necessary to put that restriction on it. X */ X char * X mydomain() X X--- 113,119 ----- X * A like '.UUCP' or '.TEK.COM' should be used. We could insure that X * the line begin with a '.' to be a valid domain name, but I don't X * think it is necessary to put that restriction on it. X+ * 3) Replace the string %s by FULLSYSNAME. X */ X char * X mydomain() X*************** X*** 118,125 X char * X mydomain() X { X! static char *md = NULL; X! register char *cp; X FILE *fp = NULL; X char fbuf[BUFLEN]; X extern char *malloc(), *strcpy(), *index(); X X--- 118,125 ----- X char * X mydomain() X { X! static char *mfd = NULL; X! register char *cp, *md = NULL; X FILE *fp = NULL; X char fbuf[BUFLEN], mfdbuf[BUFLEN]; X extern char *malloc(), *strcpy(), *index(); X*************** X*** 121,127 X static char *md = NULL; X register char *cp; X FILE *fp = NULL; X! char fbuf[BUFLEN]; X extern char *malloc(), *strcpy(), *index(); X X if(md) /* we've been here before, so just return what we found */ X X--- 121,127 ----- X static char *mfd = NULL; X register char *cp, *md = NULL; X FILE *fp = NULL; X! char fbuf[BUFLEN], mfdbuf[BUFLEN]; X extern char *malloc(), *strcpy(), *index(); X X if(mfd) /* we've been here before, so just return what we found */ X*************** X*** 124,131 X char fbuf[BUFLEN]; X extern char *malloc(), *strcpy(), *index(); X X! if(md) /* we've been here before, so just return what we found */ X! return(md); X X (void) sprintf(fbuf,"%s/localdomain", LIBDIR); X if ( (fp = fopen(fbuf,"r")) == NULL) { X X--- 124,131 ----- X char fbuf[BUFLEN], mfdbuf[BUFLEN]; X extern char *malloc(), *strcpy(), *index(); X X! if(mfd) /* we've been here before, so just return what we found */ X! return(mfd); X X (void) sprintf(fbuf,"%s/localdomain", LIBDIR); X if ( (fp = fopen(fbuf,"r")) == NULL) { X*************** X*** 139,148 X if( cp = index(fbuf, '\n') ) X *cp = '\0'; X X! if ( (md = malloc(strlen(fbuf) + 1)) == NULL) X! md = MYDOMAIN; /* punt here */ X! else X! (void)strcpy(md, fbuf); X break; X } X } X X--- 139,145 ----- X if( cp = index(fbuf, '\n') ) X *cp = '\0'; X X! md = fbuf; X break; X } X } X*************** X*** 152,157 X X if( md == NULL) X md = ""; X! X! return(md); X } X X--- 149,159 ----- X X if( md == NULL) X md = ""; X! X! sprintf(mfdbuf, md, FULLSYSNAME); X! if ( (mfd = malloc(strlen(mfdbuf) + 1)) == NULL) X! mfd = MYDOMAIN; /* punt here */ X! else X! strcpy(mfd, mfdbuf); X! return (mfd); X } / echo 'Part 01 of pack.out complete.' exit ----------------------------------- Cut Here ---------------------------------- -- EMAIL: stephen@comp.lancs.ac.uk | Post: University of Lancaster, UUCP: ...!mcvax!ukc!dcl-cs!stephen | Department of Computing, Phone: +44 524 65201 Ext. 4120 | Bailrigg, Lancaster, UK. Project:Alvey ECLIPSE Distribution | LA1 4YR