line too long?

The Hermit Hacker scrappy at hub.org
Tue Apr 3 00:04:43 UTC 2001



testing her now ...

On Tue, 3 Apr 2001, Katsuhiro Kondou wrote:

>
> In article <20010403075348P.kondou at inn.do.mms.mt.nec.co.jp>,
> 	Katsuhiro Kondou <kondou at nec.co.jp> wrote;
>
> } } are working, but has somethign changed between Feb 14th (last upgrade) and
> } } today (just upgraded) that might explain this?
> }
> } I don't think things were drastically changed.
>
> Maybe got it.  Errored articles may not terminate line with "\r\n".
> Innd treat this properly, but I've forgot to fix makehistory.
> Could you try attached(diff from current cvs)?
> --
> Katsuhiro Kondou
>
> Index: makehistory.c
> ===================================================================
> RCS file: /home/kondou/news/inn/repository/inn/expire/makehistory.c,v
> retrieving revision 1.87
> diff -u -r1.87 makehistory.c
> --- makehistory.c	2001/03/26 22:37:40	1.87
> +++ makehistory.c	2001/04/02 23:12:42
> @@ -262,7 +262,15 @@
>  	Fork ? _exit(1) : exit(1);
>      }
>
> -    for (count = 1; (line = QIOread(qp)) != NULL ; ++count) {
> +    for (count = 1; ; ++count) {
> +	line = QIOread(qp);
> +	if (line == NULL) {
> +	    if (QIOtoolong(qp)) {
> +		fprintf(stderr, "makehistory: Line %d is too long\n", count);
> +		continue;
> +	    } else
> +		break;
> +	}
>  	if ((p = strchr(line, '\t')) == NULL
>  	    || (q = strchr(p+1, '\t')) == NULL
>  	    || (r = strchr(q+1, '\t')) == NULL) {
> @@ -304,11 +312,6 @@
>  	}
>      }
>      /* Check for errors and close. */
> -    if (QIOtoolong(qp)) {
> -	fprintf(stderr, "makehistory: Line %d is too long\n", count);
> -	OVclose();
> -	Fork ? _exit(1) : exit(1);
> -    }
>      if (QIOerror(qp)) {
>  	(void)fprintf(stderr, "makehistory: Can't read sorted tmp file %s, %s\n",
>  		      SortedTmpPath, strerror(errno));
> @@ -530,7 +533,7 @@
>  DoArt(ARTHANDLE *art)
>  {
>      ARTOVERFIELD		*fp;
> -    char			*p, *p1, *p2;
> +    char			*p, *p1;
>      static BUFFER 		Buff;
>      static char			SEP[] = "\t";
>      static char			NUL[] = "\0";
> @@ -566,19 +569,17 @@
>      for (i = ARTfieldsize, fp = ARTfields; --i >= 0;fp++) {
>  	if ((fp->Header = (char *)HeaderFindMem(art->data, art->len, fp->Headername, fp->HeadernameLength)) != (char *)NULL) {
>  	    fp->HasHeader = TRUE;
> -	    for (p = fp->Header, p1 = p2 = (char *)NULL; p < art->data + art->len; p++) {
> -		if (p2 != (char *)NULL && *p2 == '\r' &&
> -		    p1 != (char *)NULL && *p1 == '\n' &&
> +	    for (p = fp->Header, p1 = (char *)NULL; p < art->data + art->len; p++) {
> +		if (p1 != (char *)NULL && (*p1 == '\r' || *p1 == '\n') &&
>  		    !ISWHITE(*p))
>  		    break;
> -		p2 = p1;
>  		p1 = p;
>  	    }
>  	    if (p >= art->data + art->len) {
>  		/* not found for this header */
>  		continue;
>  	    }
> -            fp->HeaderLength = p2 - fp->Header;
> +            fp->HeaderLength = p1 - fp->Header;
>  	} else if (RetrMode == RETR_ALL && strcmp(fp->Headername, "Bytes") == 0)
>  	{
>  		sprintf(bytes, "%d", art->len);
> @@ -591,19 +592,17 @@
>  	for (i = Missfieldsize, fp = Missfields; --i >= 0;fp++) {
>  	    if ((fp->Header = (char *)HeaderFindMem(art->data, art->len, fp->Headername, fp->HeadernameLength)) != (char *)NULL) {
>  		fp->HasHeader = TRUE;
> -		for (p = fp->Header, p1 = p2 = (char *)NULL; p < art->data + art->len; p++) {
> -		    if (p2 != (char *)NULL && *p2 == '\r' &&
> -			p1 != (char *)NULL && *p1 == '\n' &&
> -			!ISWHITE(*p))
> -		        break;
> -		    p2 = p1;
> +		for (p = fp->Header, p1 = (char *)NULL; p < art->data + art->len; p++) {
> +		    if (p1 != (char *)NULL && (*p1 == '\r' || *p1 == '\n') &&
> +		        !ISWHITE(*p))
> +		    break;
>  		    p1 = p;
>  		}
>  		if (p >= art->data + art->len) {
>  		    /* not found for this header */
>  		  continue;
>  		}
> -		fp->HeaderLength = p2 - fp->Header;
> +		fp->HeaderLength = p1 - fp->Header;
>  	    }
>  	}
>      }
>
>

Marc G. Fournier                   ICQ#7615664               IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: scrappy at hub.org           secondary: scrappy@{freebsd|postgresql}.org



More information about the inn-workers mailing list