Date: Mon, 13 Nov 2000 16:06:14 -0800 From: Alfred Perlstein <bright@wintelcom.net> To: markm@freebsd.org Cc: hackers@freebsd.org Subject: patches for 4.x devrandom so that bind "works" Message-ID: <20001113160614.R11449@fw.wintelcom.net>
next in thread | raw e-mail | index | archive | help
I was playing with bind9 and got the typical: On FreeBSD systems, the server logs error messages like "fcntl(8, F_SETFL, 4): Inappropriate ioctl for device". This is due to a bug in the FreeSBD /dev/random device. The bug has been reported to the FreeBSD maintainers. Versions of OpenBSD prior to 2.8 have a similar problem. I took a look at what OpenBSD did and it looks like they just no-op'd out the ioctl: http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/rnd.c?r1=1.40&r2=1.41 I have a patch that seems to shut bind up, but I'm not 100% sure this is the right fix, as it looks like it just fakes the nonblocking access to the random devices. Here's my patch (I can probably generate this for alpha): Index: mem.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/mem.c,v retrieving revision 1.79.2.4 diff -u -u -r1.79.2.4 mem.c --- mem.c 2000/08/04 22:31:07 1.79.2.4 +++ mem.c 2000/11/13 23:53:43 @@ -57,6 +57,7 @@ #include <sys/proc.h> #include <sys/random.h> #include <sys/signalvar.h> +#include <sys/filio.h> #include <sys/uio.h> #include <machine/frame.h> @@ -465,8 +466,20 @@ * selecting and inspecting which interrupts are used in the muck * gathering business. */ - if (cmd != MEM_SETIRQ && cmd != MEM_CLEARIRQ && cmd != MEM_RETURNIRQ) + switch (cmd) { + case FIOASYNC: + /* rnd has no async flag in softc so this is really a no-op. */ + /* FALLTHROUGH */ + case FIONBIO: + /* Handled in the upper FS layer. */ + return (0); + case MEM_SETIRQ: + case MEM_CLEARIRQ: + case MEM_RETURNIRQ: + break; + default: return (ENOTTY); + } /* * Even inspecting the state is privileged, since it gives a hint Did I miss part of the OpenBSD delta? This looks too easy. :( -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001113160614.R11449>