kbandla / libdnet

Automatically exported from code.google.com/p/libdnet
Other
1 stars 0 forks source link

route_get fails on ipv6 / freebsd #20

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
This is on FreeBSD 7.1
/*
 * function: find_default_route_entry input: none output: addr (libdnet)
 * structure with the default route address
 */
struct addr    *
find_default_route_entry()
{
        route_t        *r = NULL;
        struct route_entry *e = NULL;
        int             i = 0;

        if ((e = malloc(sizeof(struct route_entry))) == NULL)
                crapout("malloc: failed to allocate route_entry for find_default_route");

        memset((void *) e, 0, sizeof(struct route_entry));
        if ((i = addr_pton("::", &((*e).route_dst))) < 0)
                crapout("dnet: Failed to addr_pton");

        if ((r = route_open()) == NULL)
                crapout("dnet: Failed to route_open");

        if ((i = route_get(r, e)) < 0)
                crapout("dnet: Failed to route_get");

        route_close(r);

        dprintf("default gateway addr: %s\n", addr_ntoa(&((*e).route_gw)));

        return &((*e).route_gw);

}

Expected output: interface for default route on IPv6.
dnet 1.12
FreeBSD 7.1

Original issue reported on code.google.com by jfesler on 23 Mar 2011 at 10:01