From owner-freebsd-hackers Tue Jan 25 4:53:32 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from gidora.zeta.org.au (gidora.zeta.org.au [203.26.10.25]) by hub.freebsd.org (Postfix) with SMTP id 4EF1114DF8 for ; Tue, 25 Jan 2000 04:53:28 -0800 (PST) (envelope-from bde@zeta.org.au) Received: (qmail 1460 invoked from network); 25 Jan 2000 12:53:25 -0000 Received: from bde.zeta.org.au (203.2.228.102) by gidora.zeta.org.au with SMTP; 25 Jan 2000 12:53:25 -0000 Date: Tue, 25 Jan 2000 23:53:23 +1100 (EST) From: Bruce Evans X-Sender: bde@alphplex.bde.org To: "Yevmenkin, Maksim N, CSCIO" Cc: "'freebsd-current@freebsd.org'" , "'freebsd-hackers@freebsd.org'" Subject: Re: BPF bug or not? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, 24 Jan 2000, Yevmenkin, Maksim N, CSCIO wrote: > All, > > I've just found that read from /dev/bpfX never return EAGAIN/EWOULDBLOCK. > It means that when you do a non blocking read and there is no data you will > always get 0. > > Does it suppose work this way? I think it is a bug. Perhaps applications depend on it. Untested fix: diff -c2 bpf.c~ bpf.c *** bpf.c~ Sun Jan 16 15:50:59 2000 --- bpf.c Tue Jan 25 23:44:32 2000 *************** *** 502,506 **** if (d->bd_slen == 0) { splx(s); ! return (0); } ROTATE_BUFFERS(d); --- 504,508 ---- if (d->bd_slen == 0) { splx(s); ! return (EWOULDBLOCK); } ROTATE_BUFFERS(d); Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message