tonyb@tektools.UUCP (Tony Birnseth) (09/09/86)
Description: Under 2.10.3 news aliasing does not happen when: Posting: at any stage. Receiveing: When aliased newsgroup is in active file. This prevents having a cross over period when software gets articles posted to the desired groups. With the changeover to the new newsgroups upon us, it is necessary to make the change as transparent and informative to the user as possible. The user should be informed of aliasing at the time of posting. In addition, both the target of the aliased group and the old group must be able to coexist for a reasonable changeover to occur. Repeat by: add a line like: foo.bar net.test to LIBDIR/aliases and try posting to foo.bar. You will get "Invalid newsgroup message". and add a different line like: net.test local.test to LIBDIR/aliases and post from a downstream site. When received, the alias will be ignored. Fix: The following patch will force an alias lookup for each article received. Unfortunately, this will increase runtime since an alias lookup is required from disk for each invocation of inews/rnews. I feel the trade off is fair since it will reduce my administrative hours considerably over the newsgroup changeover period. In addition, this will help feeder sites do most of the changeover work for their downstream neighbors. *** /tmp/,RCSt1007237 Mon Sep 8 22:02:07 1986 --- ifuncs.c Mon Sep 8 21:42:10 1986 *************** *** 1,5 #ifndef lint ! static char *RCSid = "$Header: ifuncs.c,v 1.0 86/01/11 19:08:06 news Exp $"; #endif /* * ifuncs - functions used by inews. --- 1,5 ----- #ifndef lint ! static char *RCSid = "$Header: ifuncs.c,v 1.1 86/09/08 21:38:19 tonyb Exp $"; #endif /* * ifuncs - functions used by inews. *************** *** 683,688 * exit with error if not valid. * */ ngfcheck(isproc) int isproc; --- 683,701 ----- * exit with error if not valid. * */ + #define TEK_ALIAS + #ifdef TEK_ALIAS + /* + * Alias outgoing as well as incomming news. + * + * Do NOT require that the newsgroup being aliased 'from' be in the active file. + * + * Notibly, this causes ngfcheck() to be slower, requiring an alias search + * for every article. This does allow true aliasing to occur for the + * newsgroup changeover currently in progress. + * tonyb@tektronix.com + */ + #endif /* TEK_ALIAS */ ngfcheck(isproc) int isproc; *************** *** 692,697 register char *os1; int ngroups = 1; char tbuf[BUFLEN], ngcheck[AFSIZ]; f = xfopen(ACTIVE, "r"); s1 = ngcheck; --- 705,713 ----- register char *os1; int ngroups = 1; char tbuf[BUFLEN], ngcheck[AFSIZ]; + #ifdef TEK_ALIAS + int hit = 0; + #endif /* TEK_ALIAS */ f = xfopen(ACTIVE, "r"); s1 = ngcheck; *************** *** 744,749 while (*s2++ != '\0') ; } if (*s2 == '\0') { /* not found. remove it */ if (!isproc) { logerr("Invalid news group '%s'", s1); --- 760,766 ----- while (*s2++ != '\0') ; } + #ifndef TEK_ALIAS if (*s2 == '\0') { /* not found. remove it */ if (!isproc) { logerr("Invalid news group '%s'", s1); *************** *** 749,754 logerr("Invalid news group '%s'", s1); newssave(stdin, (char *)NULL); } /* See if it's in our alias list */ f = xfopen(ALIASES,"r"); while (fscanf(f,"%s %s", tbuf, bfr) == 2 --- 766,775 ----- logerr("Invalid news group '%s'", s1); newssave(stdin, (char *)NULL); } + #else /* TEK_ALIAS */ + if ( *s2 ) + hit = 1; /* show a match found */ + #endif /* TEK_ALIAS */ /* See if it's in our alias list */ f = xfopen(ALIASES,"r"); while (fscanf(f,"%s %s", tbuf, bfr) == 2 *************** *** 757,762 (void) fclose(f); if (strcmp(s1, tbuf) == 0) { logerr("Aliased newsgroup '%s' to '%s'", s1, bfr); os1 = s1; s1 = nbuf; s2 = tbuf; --- 778,784 ----- (void) fclose(f); if (strcmp(s1, tbuf) == 0) { logerr("Aliased newsgroup '%s' to '%s'", s1, bfr); + hit = 1; os1 = s1; s1 = nbuf; s2 = tbuf; *************** *** 775,780 /* copy back to original buffer */ tbufcpy(nbuf, tbuf); s1 = os1; } else { logerr("Unknown newsgroup '%s' removed", s1); s2 = s1; --- 797,803 ----- /* copy back to original buffer */ tbufcpy(nbuf, tbuf); s1 = os1; + #ifndef TEK_ALIAS } else { #else /* if TEK_ALIAS */ } else if( !hit ) { *************** *** 776,781 tbufcpy(nbuf, tbuf); s1 = os1; } else { logerr("Unknown newsgroup '%s' removed", s1); s2 = s1; while (*s2++ != '\0') /* skip the bad one */ --- 799,816 ----- s1 = os1; #ifndef TEK_ALIAS } else { + #else /* if TEK_ALIAS */ + } else if( !hit ) { + /* + * Didn't find in active or alias. Handle + * based on isproc. + */ + if (!isproc) { + logerr("Invalid news group '%s'", s1); + newssave(stdin, (char *)NULL); + } + /* Fall through if rnews */ + #endif /* TEK_ALIAS */ logerr("Unknown newsgroup '%s' removed", s1); s2 = s1; while (*s2++ != '\0') /* skip the bad one */ *************** *** 782,787 ; tbufcpy(s1, s2); } } else { /* It's in our active file */ os1 = s1; while (*s1++ != '\0') --- 817,823 ----- ; tbufcpy(s1, s2); } + #ifndef TEK_ALIAS } else { /* It's in our active file */ #endif /* TEK_ALIAS */ os1 = s1; *************** *** 783,788 tbufcpy(s1, s2); } } else { /* It's in our active file */ os1 = s1; while (*s1++ != '\0') ; --- 819,825 ----- } #ifndef TEK_ALIAS } else { /* It's in our active file */ + #endif /* TEK_ALIAS */ os1 = s1; while (*s1++ != '\0') ; *************** *** 795,800 tbufcpy(os1, s1); s1 = os1; } } } /* remove any duplicates */ --- 832,838 ----- tbufcpy(os1, s1); s1 = os1; } + #ifndef TEK_ALIAS } #endif /* TEK_ALIAS */ } *************** *** 796,801 s1 = os1; } } } /* remove any duplicates */ os1 = s1 = nbuf; --- 834,840 ----- } #ifndef TEK_ALIAS } + #endif /* TEK_ALIAS */ } /* remove any duplicates */ os1 = s1 = nbuf;
tony@xios.UUCP (Keeper Of News) (09/16/86)
This patch would be a lot more useful if I had the source for news 2.10.3. When is the latest and greatest going to be posted to mod.sources? It was promised over two months ago. r$, could you maybe push it to the front of the queue and post it NOW so we have some small chance of getting it to work before the newsgroup reorg hits us in the face? There are a lot of people out here with very ancient software (like my 2.10.1 system) who are holding off upgrading waiting for this posting. --- Still waiting, but no longer patiently. -- ------------------------------------------------------------------------------- Tony Lill Keeper of News @ Xios Systems Corporation 1600 Carling Avenue, Suite 150, Ottawa, Ontario, Canada, K1Z 8R8 (613) 725-5411 xios!tony ------------------------------------------------------------------------------- Not the edge of the world, but we can see it from here.
stv@qantel.UUCP (Steve Vance@ex2499) (09/18/86)
"Patch" couldn't patch these changes into my 2.10.2 news, for some reason, but the code looked about the same, so I put them in by hand. If anyone else wants the context diffs, let me know, and I'll provide them. -- Steve Vance Qantel Corporation, Hayward, CA UUCP: {dual,hplabs,ihnp4,lll-crg}!qantel!stv ATTMAIL: !stv ARPA: dual!qantel!stv@berkeley COMPUSERVE: 72226,1603