Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Jul 2000 04:18:47 -0400 (EDT)
From:      Brian Fundakowski Feldman <green@FreeBSD.org>
To:        Hiroyuki Hanai <hanai@imgsrc.co.jp>
Cc:        current@FreeBSD.org, markm@FreeBSD.org
Subject:   Re: fcntl and /dev/random
Message-ID:  <Pine.BSF.4.21.0007290413270.80050-100000@green.dyndns.org>
In-Reply-To: <8266pp602g.wl@darkmatter.imgsrc.co.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 29 Jul 2000, Hiroyuki Hanai wrote:
> 
> Setting status flags using F_SETFL command of fcntl(2) on the file
> descriptor, which is returned by open(2)ing /dev/random, seems not to
> be supported. For example, when I run following code;
>
> [...]
> 
> 3.4-RELEASE(and possibly 3.5 and 3.5.1) and 4.1-RELEASE/4.1-STABLE say
> `Inappropriate ioctl for device' and 5-current says `Operation not
> supported by device'.

EOPNOTSUPP is definitely wrong.  Try this:

Index: randomdev.c
===================================================================
RCS file: /usr2/ncvs/src/sys/dev/randomdev/randomdev.c,v
retrieving revision 1.10
diff -u -u -1 -r1.10 randomdev.c
--- randomdev.c	2000/07/25 21:22:17	1.10
+++ randomdev.c	2000/07/29 08:12:47
@@ -51,2 +51,3 @@
 static d_write_t random_write;
+static d_ioctl_t random_ioctl;
 
@@ -61,3 +62,3 @@
 	/* write */	random_write,
-	/* ioctl */	noioctl,
+	/* ioctl */	random_ioctl,
 	/* poll */	nopoll,
@@ -133,2 +134,9 @@
 	return error;
+}
+
+static int
+random_ioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
+{
+
+	return (ENOTTY);
 }

> I've found above in BIND9's source and its `named' program complains
> everytime it's invoked.
> 
> Should I fix BIND9's code? or wait for fcntl's F_SETFL being
> supported on FreeBSD?

Err, this is a minor bug, but should definitely be fixed.

> Actually, in BIND9, fd is already open(2)ed with `O_RDONLY | O_NONBLOCK'
> and setting O_NONBLOCK status with fcntl(2) is not needed, which means
> that fixing BIND9's code is very simple; just comment out the fcntl(2)ing line.

I'd say send that to the maintainer :)

> h.hanai

--
 Brian Fundakowski Feldman           \  FreeBSD: The Power to Serve!  /
 green@FreeBSD.org                    `------------------------------'



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0007290413270.80050-100000>