Subject: Re: CVS commit: src/lib/libc/rpc
To: Geoff Wing <mason@primenet.com.au>
From: Martin Blapp <mb@imp.ch>
List: source-changes
Date: 05/24/2003 11:22:05
Hi,

I read you mail about rpcinfo problems after my patch has been
committed. There was one line with initializing lens wrong. I've
removed the offending line.

I have heavily tested this on FreeBSD and beside that AMD works
now, I haven seen any troubles as you have described !

Can you please test this patch it it does cause any harm ?

http://people.freebsd.org/~mbr/patches/xdr_nonblock_eof_fix-netbsd.diff

Remove the special treatment of non-blocking mode in
xdrrec_eof(). This change broke seriously reading serialized
xdr-records. A end of a request could sometimes not
be recognized and the answer to the client did fail.

--- lib/libc/xdr/xdr_rec.c.orig	Thu Feb 27 13:40:01 2003
+++ lib/libc/xdr/xdr_rec.c	Sat May 17 17:20:24 2003
@@ -489,15 +489,6 @@
 	XDR *xdrs;
 {
 	RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
-	enum xprt_stat xstat;
-
-	if (rstrm->nonblock) {
-		if (__xdrrec_getrec(xdrs, &xstat, FALSE))
-			return FALSE;
-		if (!rstrm->in_haveheader && xstat == XPRT_IDLE)
-			return TRUE;
-		return FALSE;
-	}

 	while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) {
 		if (! skip_input_bytes(rstrm, rstrm->fbtbc))

Martin Blapp, <mb@imp.ch> <mbr@FreeBSD.org>
------------------------------------------------------------------
ImproWare AG, UNIXSP & ISP, Zurlindenstrasse 29, 4133 Pratteln, CH
Phone: +41 61 826 93 00 Fax: +41 61 826 93 01
PGP: <finger -l mbr@freebsd.org>
PGP Fingerprint: B434 53FC C87C FE7B 0A18 B84C 8686 EF22 D300 551E
------------------------------------------------------------------