|
--- bpf.c.orig 2010-02-13 00:31:52.000000000 -0800
|
|
+++ bpf.c 2010-02-13 00:33:32.000000000 -0800
|
|
@@ -421,9 +421,12 @@
|
|
* have arrived to fill the store buffer.
|
|
*/
|
|
while (d->bd_hbuf == NULL) {
|
|
- if ((d->bd_immediate || timed_out) && d->bd_slen != 0) {
|
|
+ if ((d->bd_immediate || (ap->a_ioflag & IO_NDELAY) || timed_out)
|
|
+ && d->bd_slen != 0) {
|
|
/*
|
|
- * A packet(s) either arrived since the previous
|
|
+ * We're in immediate mode, or are reading
|
|
+ * in non-blocking mode, and a packet(s)
|
|
+ * either arrived since the previous
|
|
* read or arrived while we were asleep.
|
|
* Rotate the buffers and return what's here.
|
|
*/
|