Dennis George wrote:
> Can anybody tell me how to find the MTU (Maximum Transmitting
> Unit) in freeBSD programatically...

The full source for ifconfig(8) is available.  No need to ask
anyone...

http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/ifconfig/ifconfig.c?rev=1.106&content-type=text/x-cvsweb-markup

However, here's a small program, probably taken from the sources
above at some point, that prints the MTU for ed0.

#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>

#include <err.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int
main(void)
{
        int s, af = AF_INET;
        char *name = "ed0";
        struct ifreq ifr;

        if ((s = socket(af, SOCK_DGRAM, 0)) < 0)
                err(1, "socket");

        ifr.ifr_addr.sa_family = AF_INET;
        strcpy(ifr.ifr_name, name);
        if (ioctl(s, SIOCGIFMTU, (caddr_t)&ifr) < 0)
                warn("ioctl (get mtu)");

        fprintf(stdout, "MTU of %s is %d.\n", name, ifr.ifr_mtu);
        close(s);
        return(0);
}

-- 
Skip
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to