Sounds like that, but changing it now would be too backwards incompatible.
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
--
Ruslan Ermilov Oracle Developer/DBA,
[EMAIL PROTECTED] Sunbay Software AG,
[EMAIL PROTECTED] FreeBSD committer,
+380.652.512.251 Simferopol, Ukraine
http://www.FreeBSD.org The Power To Serve
http://www.oracle.com Enabling The Information Age
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message