From rsalz@uunet.uu.net Mon Nov 28 14:45:23 EST 1994
Article: 7063 of news.software.nntp
Path: news.pop.psu.edu!news.cac.psu.edu!howland.reston.ans.net!news.sprintlink.net!EU.net!uunet!not-for-mail
From: rsalz@uunet.uu.net (Rich Salz)
Newsgroups: news.software.nntp
Subject: Re: Yet Again (was Re: Innxmit bug again)
Date: 28 Nov 1994 13:41:37 -0500
Organization: UUNET Technologies Inc, Falls Church, VA, USA
Lines: 7
Distribution: inet
Message-ID: <3bd891$oqs@rodan.UU.NET>
References: <39nqti$kvu@horos.kbfi.ee> <3a8pf7$rbv@papaioea.manawatu.planet.co.nz> <3bb891$kbr@sol.sun.csd.unb.ca> <3bbs90$9t5@slapshot.Stanford.EDU>
NNTP-Posting-Host: rodan.uu.net

In <3bbs90$9t5@slapshot.Stanford.EDU> schemers@leland.stanford.edu (Roland Schemers) writes:
>Why doen't innxmit just punt on lines that are too long?

My code has a bug.  Sorry.  In backends/innxmit.c, make sure the if()
for QIOtoolong occurs before the if() for QIOerror.  There are a couple
of places to fix this.
	/r$


From rsalz@uunet.uu.net Fri Dec  2 09:31:48 EST 1994
Article: 7154 of news.software.nntp
Path: news.pop.psu.edu!news.cac.psu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!gatech!swrinde!pipex!uunet!not-for-mail
From: rsalz@uunet.uu.net (Rich Salz)
Newsgroups: news.software.nntp
Subject: Re: Problem w/ innxmit in a master/slave configuration
Date: 2 Dec 1994 01:34:54 -0500
Organization: UUNET Technologies Inc, Falls Church, VA, USA
Lines: 10
Distribution: na
Message-ID: <3bmf6e$5si@rodan.UU.NET>
References: <3bfkrl$f22@purfleet.advantis.com>
NNTP-Posting-Host: rodan.uu.net

In <3bfkrl$f22@purfleet.advantis.com> crystal@purfleet.advantis.com (Darren Crystal) writes:
>When innxmit (on the master) encounters a news article
>that is cross-posted to LOTS of other news groups (ie.
>a VERY long line) it segmentation faults...and WON'T
>get past the offending line. This causes the news flow
>to stop until I can manually fix it...

It's a bug.  See my note about reversing QIOerror/QIOtoolong tests...
Also in one place the QIO test is called with the wrong QIO variable.
	/r$


Return-Path: cudep@csv.warwick.ac.uk
Received: from spatula.csv.warwick.ac.uk (cudep@spatula.csv.warwick.ac.uk [137.205.193.200]) by bosnia.pop.psu.edu (8.6.9/8.6.9) with ESMTP id NAA20069 for <barr@pop.psu.edu>; Wed, 14 Dec 1994 13:48:56 -0500
Date: Wed, 14 Dec 1994 18:48:43 GMT
From: Ian Dickinson <cudep@csv.warwick.ac.uk>
Message-Id: <6600.199412141848@spatula.csv.warwick.ac.uk>
Received: by spatula.csv.warwick.ac.uk
	id SAA06600; Wed, 14 Dec 1994 18:48:43 GMT
In-Reply-To: David Barr <barr@pop.psu.edu>
       "Re: INN patch for the repository" (Dec 14,  1:38pm)
X-Mailer: Mail User's Shell (7.2.5 10/14/92)
To: David Barr <barr@pop.psu.edu>
Subject: Re: INN patch for the repository
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Here's the patch for innxmit-long-lines.
I don't honestly know is this is correct,
since I've never encountered the problem so far...

*** backends/innxmit.c.ORIG	Thu Mar 18 21:03:28 1993
--- backends/innxmit.c	Wed Dec 14 18:41:54 1994
***************
*** 415,425 ****
  
      for ( ; ; ) {
  	if ((p = QIOread(BATCHqp)) == NULL) {
- 	    if (QIOerror(BATCHqp)) {
- 		(void)fprintf(stderr, "Can't read \"%s\", %s\n",
- 			BATCHname, strerror(errno));
- 		ExitWithStats(1);
- 	    }
  	    if (QIOtoolong(BATCHqp)) {
  		(void)fprintf(stderr, "Skipping long line in \"%s\".\n",
  			BATCHname);
--- 415,420 ----
***************
*** 426,431 ****
--- 421,431 ----
  		(void)QIOread(BATCHqp);
  		continue;
  	    }
+ 	    if (QIOerror(BATCHqp)) {
+ 		(void)fprintf(stderr, "Can't read \"%s\", %s\n",
+ 			BATCHname, strerror(errno));
+ 		ExitWithStats(1);
+ 	    }
  
  	    /* Normal EOF. */
  	    break;
***************
*** 569,584 ****
  
      for (InHeaders = TRUE; ; ) {
  	if ((p = QIOread(qp)) == NULL) {
  	    if (QIOerror(qp)) {
  		(void)fprintf(stderr, "Can't read \"%s\", %s\n",
  			Article, strerror(errno));
  		return FALSE;
  	    }
- 	    if (QIOtoolong(qp)) {
- 		(void)fprintf(stderr, "Line too long in \"%s\"\n", Article);
- 		(void)QIOread(BATCHqp);
- 		continue;
- 	    }
  
  	    /* Normal EOF. */
  	    break;
--- 569,584 ----
  
      for (InHeaders = TRUE; ; ) {
  	if ((p = QIOread(qp)) == NULL) {
+ 	    if (QIOtoolong(qp)) {
+ 		(void)fprintf(stderr, "Line too long in \"%s\"\n", Article);
+ 		(void)QIOread(qp);
+ 		continue;
+ 	    }
  	    if (QIOerror(qp)) {
  		(void)fprintf(stderr, "Can't read \"%s\", %s\n",
  			Article, strerror(errno));
  		return FALSE;
  	    }
  
  	    /* Normal EOF. */
  	    break;
***************
*** 982,997 ****
  	    Interrupted(Article, MessageID);
  
  	if ((Article = QIOread(BATCHqp)) == NULL) {
- 	    if (QIOerror(BATCHqp)) {
- 		(void)fprintf(stderr, "Can't read \"%s\", %s\n",
- 			BATCHname, strerror(errno));
- 		ExitWithStats(1);
- 	    }
  	    if (QIOtoolong(BATCHqp)) {
  		(void)fprintf(stderr, "Skipping long line in \"%s\"\n",
  			BATCHname);
  		(void)QIOread(BATCHqp);
  		continue;
  	    }
  
  	    /* Normal EOF -- we're done. */
--- 982,997 ----
  	    Interrupted(Article, MessageID);
  
  	if ((Article = QIOread(BATCHqp)) == NULL) {
  	    if (QIOtoolong(BATCHqp)) {
  		(void)fprintf(stderr, "Skipping long line in \"%s\"\n",
  			BATCHname);
  		(void)QIOread(BATCHqp);
  		continue;
+ 	    }
+ 	    if (QIOerror(BATCHqp)) {
+ 		(void)fprintf(stderr, "Can't read \"%s\", %s\n",
+ 			BATCHname, strerror(errno));
+ 		ExitWithStats(1);
  	    }
  
  	    /* Normal EOF -- we're done. */

-- 
Ian 'Vato' Dickinson [ID17]                                   Kibo bait :-)
cudep@csv.warwick.ac.uk  ...!uknet!warwick!cudep           vato@spuddy.uucp
           MIME mail welcome - don't send me no steenkin' X.400
      Click <A HREF="http://www.csv.warwick.ac.uk/~cudep/">here</A>.
