On Thu, Jan 24, 2002 at 11:52:09AM +0200, Ruslan Ermilov wrote:
> Sounds like that, but changing it now would be too backwards incompatible.

Then shouldn't we fix the documentation to reflect reality?

> On Wed, Jan 23, 2002 at 02:51:35AM -0800, Crist J . Clark wrote:
> > Here is a quick, broken, program,
> > 
> > #include <sys/types.h>
> > #include <sys/sysctl.h>
> > #include <sys/time.h>
> > #include <sys/socket.h>
> > #include <net/if.h>
> > #include <net/route.h>
> > 
> > #include <sysexits.h>
> > 
> > /*  #define MIB_LEN 6       */
> > #define     MIB_LEN 5
> > 
> > int main(int argc,  char *argv[])
> > {
> >     int mib[MIB_LEN];
> >     size_t rttsize;
> > 
> >     mib[0] = CTL_NET;
> >     mib[1] = PF_ROUTE;
> >     mib[2] = 0;
> >     mib[3] = AF_INET;
> >     mib[4] = NET_RT_DUMP;
> > /*  mib[5] = 0;     */
> > 
> >     if (sysctl(mib, MIB_LEN, NULL, &rttsize, NULL, 0) != 0)
> >             err(EX_OSERR, "sysctl(3) for table size failed");
> > 
> >     return 0;
> > }
> > 
> > This broken version will return,
> > 
> >   $ ./sysctlerr
> >   sysctlerr: sysctl(3) for table size failed: Invalid argument
> > 
> > However, if we look at the errno descriptions in the sysctl(3)
> > manpage, an EINVAL is returned when,
> > 
> >      [EINVAL]           The name array is less than two or greater than
> >                         CTL_MAXNAME.
> > 
> >      [EINVAL]           A non-null newp is given and its specified length in
> >                         newlen is too large or too small.
> > 
> > Neither of which is the case here. I think it should be returning one
> > of these,
> > 
> >      [ENOTDIR]          The name array specifies an intermediate rather than
> >                         terminal name.
> > 
> >      [EISDIR]           The name array specifies a terminal name, but the
> >                         actual name is not terminal.
> > 
> > But "terminal" or "intermediate" names are not defined anywhere else
> > in the manpage.
-- 
Crist J. Clark                     |     [EMAIL PROTECTED]
                                   |     [EMAIL PROTECTED]
http://people.freebsd.org/~cjc/    |     [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to