Re: apmd ignoring ENXIO on /dev/apmctl

2015-11-17 Thread Ted Unangst
Jan Stary wrote:
> Upon startup, apmd(8) opens /dev/apmctl like this:
> 
>   if ((ctl_fd = open(fname, O_RDWR | O_CLOEXEC)) == -1) {
>   if (errno != ENXIO && errno != ENOENT)
>   error("cannot open device file `%s'", fname);
>   }
> 
> Why is it that we ignore ENXIO and ENOENT here?
> apmd(8) seems to go on using the fd as if opening successfully.

There are quite a few checks for ctl_fd == -1 elsewhere, in which case apmd
uses fake data, but a few are missing. And I'm not impressed with the idea in
general.



apmd ignoring ENXIO on /dev/apmctl

2015-11-17 Thread Jan Stary
Upon startup, apmd(8) opens /dev/apmctl like this:

if ((ctl_fd = open(fname, O_RDWR | O_CLOEXEC)) == -1) {
if (errno != ENXIO && errno != ENOENT)
error("cannot open device file `%s'", fname);
}

Why is it that we ignore ENXIO and ENOENT here?
apmd(8) seems to go on using the fd as if opening successfully.

Jan