home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume7 / 2.11news / patch07 < prev    next >
Text File  |  1987-04-07  |  8KB  |  345 lines

  1. Path: mirror!adelie!necntc!husc6!seismo!rick
  2. From: rick@seismo.CSS.GOV (Rick Adams)
  3. Newsgroups: news.software.b
  4. Subject: Patch #7 for news 2.11 src
  5. Message-ID: <43252@beno.seismo.CSS.GOV>
  6. Date: 7 Apr 87 17:58:13 GMT
  7. Organization: Center for Seismic Studies, Arlington, VA
  8. Lines: 335
  9.  
  10. This patch contains no enhancements. It is intended to only correct
  11. problems in patch #6. In theory, patch #7 should be a stable,
  12. largely bugfree version. #8 will add more enhancements and undoubtably
  13. introduce new bugs.
  14.  
  15. Description:
  16.     This is patch #7 for news 2.11 source. It addresses the following
  17.     problems:
  18.  
  19.     Fix more problems with the GENERICPATH/GENERICFROM defines.
  20.     Fix a problem with the interaction of SPOOLNEWS and moderators
  21.     posting.
  22.     Add ifdef so machines that support flock() but not the fcntl()
  23.     interface can define FLOCK.
  24.     username was not set in expire causing it to drop core when it
  25.     tried to log an error.
  26.     inews now handles non-batched rnews input correctly.
  27.     checknews now complains if no argument is given with -N
  28.  
  29. Fix:
  30.     cd to the src directory and apply the following patch
  31.  
  32. Index: patchlevel.h
  33. Prereq: 6
  34. *** .d/patchlevel.h    Tue Mar 24 13:51:17 1987
  35. --- patchlevel.h    Mon Apr  6 19:43:42 1987
  36. ***************
  37. *** 1,3 ****
  38. ! #define    PATCHLEVEL    6
  39.   
  40. ! #define NEWS_VERSION   "B 2.11 3/23/87"
  41. --- 1,3 ----
  42. ! #define    PATCHLEVEL    7
  43.   
  44. ! #define NEWS_VERSION   "B 2.11 4/06/87"
  45.  
  46. Index: params.h
  47. Prereq: 2.22
  48. *** .d/params.h    Tue Mar 24 13:51:47 1987
  49. --- params.h    Mon Apr  6 19:43:42 1987
  50. ***************
  51. *** 3,7 ****
  52.    */
  53.   
  54. ! /*    @(#)params.h    2.22    3/20/87    */
  55.   
  56.   #include <stdio.h>
  57. --- 3,7 ----
  58.    */
  59.   
  60. ! /*    @(#)params.h    2.23    4/6/87    */
  61.   
  62.   #include <stdio.h>
  63. ***************
  64. *** 118,121 ****
  65. --- 118,122 ----
  66.   #  ifndef GENERICFROM        /* Ugly fix, only for use in pathinit.c */
  67.   #    define GENERICFROM "%s%0.0s%s", HIDDENNET
  68. + #    define HIDDENNET_IN_LOCALSYSNAME
  69.   #  endif
  70.   #  ifndef GENERICPATH
  71.  
  72. Index: pathinit.c
  73. Prereq: 1.22
  74. *** .d/pathinit.c    Tue Mar 24 13:51:48 1987
  75. --- pathinit.c    Mon Apr  6 19:43:43 1987
  76. ***************
  77. *** 35,39 ****
  78.   
  79.   #ifdef SCCSID
  80. ! static char    *SccsId = "@(#)pathinit.c    1.22    3/23/87";
  81.   #endif /* SCCSID */
  82.   
  83. --- 35,39 ----
  84.   
  85.   #ifdef SCCSID
  86. ! static char    *SccsId = "@(#)pathinit.c    1.23    4/6/87";
  87.   #endif /* SCCSID */
  88.   
  89. ***************
  90. *** 118,125 ****
  91.       char *p;
  92.   #endif /* EXP */
  93. ! #if !defined(CHKN) && !defined(EXP)
  94. ! #ifdef GENERICFROM
  95. !     int len;
  96. ! #endif /* GENERICFROM */
  97.       struct utsname ubuf;
  98.       char buf[BUFLEN];
  99. --- 118,122 ----
  100.       char *p;
  101.   #endif /* EXP */
  102. ! #ifndef CHKN
  103.       struct utsname ubuf;
  104.       char buf[BUFLEN];
  105. ***************
  106. *** 128,149 ****
  107.       uname(&ubuf);
  108.   
  109.   #ifdef GENERICFROM
  110.       (void) sprintf(buf, GENERICFROM, ubuf.nodename, mydomain());
  111.       FROMSYSNAME = AllocCpy(buf);
  112. !     len = strlen(ubuf.nodename);
  113. !     if (FROMSYSNAME[len] == '.' &&
  114. !         strncmp(ubuf.nodename, FROMSYSNAME, len) == 0)
  115. !         LOCALSYSNAME = FROMSYSNAME;
  116. !     else {
  117. !         (void) sprintf(buf, "%s.%s", ubuf.nodename, FROMSYSNAME);
  118. !         LOCALSYSNAME = AllocCpy(buf);
  119. !     }
  120. ! #else    /* !GENERICFROM */
  121. !     (void) sprintf(buf, "%s%s", ubuf.nodename, mydomain());
  122. !     LOCALSYSNAME = AllocCpy(buf);
  123.       FROMSYSNAME = LOCALSYSNAME;
  124. ! #endif    /* !GENERICFROM */
  125.   
  126.       LOCALPATHSYSNAME = AllocCpy(ubuf.nodename);
  127.   #ifdef GENERICPATH
  128.       (void) sprintf(buf, GENERICPATH, ubuf.nodename, mydomain());
  129. --- 125,147 ----
  130.       uname(&ubuf);
  131.   
  132. + #ifdef HIDDENNET_IN_LOCALSYSNAME
  133. +     /* old compatibility code, remove when HIDDENNET is used no more */
  134. +     if (strcmp(ubuf.nodename, HIDDENNET) != 0)
  135. +         (void) sprintf(buf, "%s.%s%s", ubuf.nodename, HIDDENNET,
  136. +             mydomain());
  137. +     else
  138. + #endif
  139. +         (void) sprintf(buf, "%s%s", ubuf.nodename, mydomain());
  140. +     LOCALSYSNAME = AllocCpy(buf);
  141.   #ifdef GENERICFROM
  142.       (void) sprintf(buf, GENERICFROM, ubuf.nodename, mydomain());
  143.       FROMSYSNAME = AllocCpy(buf);
  144. ! #else /* !GENERICFROM */
  145.       FROMSYSNAME = LOCALSYSNAME;
  146. ! #endif /* !GENERICFROM */
  147.   
  148.       LOCALPATHSYSNAME = AllocCpy(ubuf.nodename);
  149.   #ifdef GENERICPATH
  150.       (void) sprintf(buf, GENERICPATH, ubuf.nodename, mydomain());
  151. ***************
  152. *** 153,157 ****
  153.   #endif    /* !GENERICPATH */
  154.   
  155. ! #endif /* !CHKN  && ! EXP */
  156.   
  157.   #ifdef HOME
  158. --- 151,155 ----
  159.   #endif    /* !GENERICPATH */
  160.   
  161. ! #endif /* !CHKN */
  162.   
  163.   #ifdef HOME
  164.  
  165. Index: ifuncs.c
  166. Prereq: 2.63
  167. *** .d/ifuncs.c    Tue Mar 24 13:51:41 1987
  168. --- ifuncs.c    Mon Apr  6 19:43:39 1987
  169. ***************
  170. *** 17,21 ****
  171.   
  172.   #ifdef SCCSID
  173. ! static char    *SccsId = "@(#)ifuncs.c    2.63    3/23/87";
  174.   #endif /* SCCSID */
  175.   
  176. --- 17,21 ----
  177.   
  178.   #ifdef SCCSID
  179. ! static char    *SccsId = "@(#)ifuncs.c    2.64    4/6/87";
  180.   #endif /* SCCSID */
  181.   
  182. ***************
  183. *** 1052,1057 ****
  184.   {
  185.       int c;
  186.   
  187. !     setbuf(infp, NULL);
  188.       while ((c = getc(infp)) == '#') {
  189.           /* some kind of batch, investigate further */
  190. --- 1052,1058 ----
  191.   {
  192.       int c;
  193. +     char *cp;
  194.   
  195. !     setbuf(infp, (char *)NULL);
  196.       while ((c = getc(infp)) == '#') {
  197.           /* some kind of batch, investigate further */
  198. ***************
  199. *** 1194,1197 ****
  200. --- 1195,1201 ----
  201.           }
  202.       }            /* while a batch */
  203. +     cp = malloc((unsigned)BUFSIZ);
  204. +     if (cp != NULL)
  205. +         setbuf(infp, cp);
  206.       if (c != EOF)
  207.           (void) ungetc(c, infp);
  208. ***************
  209. *** 1398,1402 ****
  210.       LockFd = open(SUBFILE, 2);
  211.       if (LockFd < 0)
  212. !         logerr("Can't open(%s,2) to lock", SUBFILE);
  213.       /* This will sleep until the other program releases the lock */
  214.       /* We may need to alarm out of this, but I don't think so */
  215. --- 1402,1406 ----
  216.       LockFd = open(SUBFILE, 2);
  217.       if (LockFd < 0)
  218. !         logerr("Can't open(\"%s\",2) to lock", SUBFILE);
  219.       /* This will sleep until the other program releases the lock */
  220.       /* We may need to alarm out of this, but I don't think so */
  221.  
  222. Index: inews.c
  223. Prereq: 2.78
  224. *** .d/inews.c    Tue Mar 24 13:51:45 1987
  225. --- inews.c    Mon Apr  6 19:43:41 1987
  226. ***************
  227. *** 18,22 ****
  228.   
  229.   #ifdef SCCSID
  230. ! static char    *SccsId = "@(#)inews.c    2.78    3/23/87";
  231.   #endif /* SCCSID */
  232.   
  233. --- 18,22 ----
  234.   
  235.   #ifdef SCCSID
  236. ! static char    *SccsId = "@(#)inews.c    2.79    4/6/87";
  237.   #endif /* SCCSID */
  238.   
  239. ***************
  240. *** 27,31 ****
  241. --- 27,33 ----
  242.   # include <fcntl.h>
  243.   
  244. + #  ifdef F_RDLCK
  245.   struct flock news_lock;
  246. + #  endif /* F_RDLCK */
  247.   # endif /* LOCKF */
  248.   
  249. ***************
  250. *** 353,357 ****
  251.               /* there are certain fields we won't let him specify. */
  252.               if (header.from[0]) {
  253. !                 if (Sflag) {
  254.                       register char *p;
  255.                       strcpy(bfr, header.from);
  256. --- 355,360 ----
  257.               /* there are certain fields we won't let him specify. */
  258.               if (header.from[0]) {
  259. !                 if (Sflag && !Mflag && !header.approved[0] &
  260. !                     !header.sender[0]) {
  261.                       register char *p;
  262.                       strcpy(bfr, header.from);
  263. ***************
  264. *** 533,537 ****
  265.       mfd = mailhdr((struct hbuf *)NULL,
  266.           exists(dir) ? "Unwritable directories" : "Missing directories");
  267. !     if (mfs == NULL)
  268.           return;
  269.       putc('\n', mfd);
  270. --- 536,540 ----
  271.       mfd = mailhdr((struct hbuf *)NULL,
  272.           exists(dir) ? "Unwritable directories" : "Missing directories");
  273. !     if (mfd == NULL)
  274.           return;
  275.       putc('\n', mfd);
  276. ***************
  277. *** 941,946 ****
  278.               savehist(histline);
  279.       } else {
  280. !         if (s_find(&srec, PATHSYSNAME) == FALSE) {
  281. !             logerr("Cannot find my name '%s' in %s", PATHSYSNAME, SUBFILE);
  282.               srec = dummy_srec;
  283.           }
  284. --- 944,950 ----
  285.               savehist(histline);
  286.       } else {
  287. !         if (s_find(&srec, LOCALPATHSYSNAME) == FALSE) {
  288. !             logerr("Cannot find my name '%s' in %s",
  289. !                 LOCALPATHSYSNAME, SUBFILE);
  290.               srec = dummy_srec;
  291.           }
  292. Index: checknews.c
  293. Prereq: 2.28
  294. *** .d/checknews.c    Tue Feb 24 17:55:41 1987
  295. --- checknews.c    Mon Apr  6 19:43:35 1987
  296. ***************
  297. *** 17,21 ****
  298.   
  299.   #ifdef SCCSID
  300. ! static char    *SccsId = "@(#)checknews.c    2.28    2/22/87";
  301.   #endif /* SCCSID */
  302.   
  303. --- 17,21 ----
  304.   
  305.   #ifdef SCCSID
  306. ! static char    *SccsId = "@(#)checknews.c    2.29    4/6/87";
  307.   #endif /* SCCSID */
  308.   
  309. ***************
  310. *** 72,75 ****
  311. --- 72,77 ----
  312.               case 'N':
  313.                   nflag++;
  314. +                 if (argc <= 1)
  315. +                     xerror("No newsgroup specified with -N");
  316.                   strcpy(narggrp,argv[1]);
  317.                   strcat(narggrp,",");
  318. Index: expire.c
  319. Prereq: 2.52
  320. *** .d/expire.c    Tue Mar 24 13:51:29 1987
  321. --- expire.c    Mon Apr  6 19:43:37 1987
  322. ***************
  323. *** 18,22 ****
  324.   
  325.   #ifdef SCCSID
  326. ! static char    *SccsId = "@(#)expire.c    2.52    3/20/87";
  327.   #endif /* SCCSID */
  328.   
  329. --- 18,22 ----
  330.   
  331.   #ifdef SCCSID
  332. ! static char    *SccsId = "@(#)expire.c    2.53    4/6/87";
  333.   #endif /* SCCSID */
  334.   
  335. ***************
  336. *** 114,117 ****
  337. --- 114,118 ----
  338.       pathinit();
  339.       (void) umask(N_UMASK);
  340. +     username = NEWSUSR;
  341.   
  342.       /*
  343.