Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Jul 2000 13:18:47 +0900
From:      Hiroyuki Hanai <hanai@imgsrc.co.jp>
To:        current@FreeBSD.org
Cc:        markm@FreeBSD.org
Subject:   fcntl and /dev/random
Message-ID:  <8266pp602g.wl@darkmatter.imgsrc.co.jp>

next in thread | raw e-mail | index | archive | help

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;

  #include <stdio.h>
  #include <errno.h>
  #include <fcntl.h>
  main()
  {
    int fd;
    fd = open("/dev/random", O_RDONLY);
    if (fcntl(fd, F_SETFL, O_NONBLOCK) == -1) {
      printf("%s\n", strerror(errno));
    }
  }

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'.

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?

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.

h.hanai


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?8266pp602g.wl>