#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <unistd.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_fake_var.h>
#include <net/route.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <err.h>
#include <errno.h>
#include "ifconfig.h"
static void
nexus_status(int s)
{
struct if_nexusreq ifnr;
uuid_string_t multistack;
uuid_string_t netif;
if (!verbose) {
return;
}
bzero((char *)&ifnr, sizeof(ifnr));
strlcpy(ifnr.ifnr_name, ifr.ifr_name, sizeof(ifnr.ifnr_name));
if (ioctl(s, SIOCGIFNEXUS, &ifnr) < 0) {
return;
}
if (uuid_is_null(ifnr.ifnr_netif)) {
return;
}
uuid_unparse_upper(ifnr.ifnr_netif, netif);
printf("\tnetif: %s\n", netif);
if (uuid_is_null(ifnr.ifnr_multistack) == 0) {
uuid_unparse_upper(ifnr.ifnr_multistack, multistack);
printf("\tmultistack: %s\n", multistack);
}
return;
}
static struct afswtch af_fake = {
.af_name = "af_fake",
.af_af = AF_UNSPEC,
.af_other_status = nexus_status,
};
static __constructor void
fake_ctor(void)
{
af_register(&af_fake);
}