Re: New and improved? patch [ fwcontrol ]

Dieter <[email protected]>
Newsgroups gmane.os.freebsd.devel.firewire
Message-ID <[email protected]>
> > 7.0 AMD64 # ./fwcontrol -f -5
> > fwcontrol: main:set_root_node out of range: No such file or directory
> > 
> > "No such file or directory" seems wrong
> 
> err(EX_USAGE, "%s:set_root_node out of range", __func__);
> 
> Err() is correct for places where errno would be set, such as
> checking the return code from read(2).  But for the range checks,
> errno does not apply, so err() gives misleading results.
> 
> The err(3) man page isn't clear, but it looks like errx(3) is
> the function you want for the range checks.
> 
> Changing err() to errx() gives:
> 
> 7.0 AMD64 # ./fwcontrol -f 70
> fwcontrol: main:set_root_node out of range

Also, I'm thinking we probably don't want "\n" in the err() and errx()
calls, since they put that in automagically.

When a file cannot be opened, it is useful to print the name
of the file.

        int len=1024, i;
 
        if ((file = fopen(filename, "r")) == NULL)
-               err(1, "load_crom");
+         err(1, "load_crom filename = %s", filename);
        for (i = 0; i < len/(4*8); i ++) {
                fscanf(file, DUMP_FORMAT,
                        p, p+1, p+2, p+3, p+4, p+5, p+6, p+7);



                if (open_dev(&fd, devbase) < 0) {
-                       errx(EX_IOERR, "%s: Error opening board #%d\n", __func__, current_board);
+                       err(EX_IOERR, "%s: Error opening firewire controller #%d %s ",
+                            __func__, current_board, devbase);
                }
        }
        /*

Since open_dev() calls open(2), which sets errno, this time
we want err(3) rather than errx(3).
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-firewire
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.