ifinfo
struct imsg_ifinfo ifinfo;
memset(&ifinfo, 0, sizeof(ifinfo));
ifinfo.if_index = if_index;
ifinfo.link_state = -1;
ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) ==
ifinfo.link_state = if_data->ifi_link_state;
ifinfo.rdomain = if_data->ifi_rdomain;
memcpy(&iface->ifinfo, &ifinfo, sizeof(iface->ifinfo));
struct imsg_ifinfo ifinfo;
memcpy(&iface->ifinfo, &ifinfo, sizeof(iface->ifinfo));
frontend_imsg_compose_main(IMSG_UPDATE_IF, 0, &iface->ifinfo,
sizeof(iface->ifinfo));
imsg_dhcp.if_index = iface->ifinfo.if_index;
if ((if_name = if_indextoname(iface->ifinfo.if_index, ifnamebuf))
dst.sin6_scope_id = iface->ifinfo.if_index;
if (iface->ifinfo.if_index == if_index)
ifinfo->pds[$2].prefix_len = $4;
if (inet_pton(AF_INET6, $3, &ifinfo->pds[$2].prefix)
ifinfo->pds[$2].prefix_len = 0;
ifinfo = imsg;
struct imsg_ifinfo *ifinfo;
ifinfo->pds[$2].prefix_len = 0;
"DHCPREQUEST", iface->ifinfo.if_name);
pkt_len = build_packet(message_type, iface->ifinfo.if_name, iface->xid,
&iface->ifinfo.hw_address, &iface->ciaddr, &iface->requested_ip,
memcpy(eh.ether_shost, &iface->ifinfo.hw_address,
if (iface->ifinfo.if_index == if_index)
struct imsg_ifinfo ifinfo;
iface->ifinfo.if_name);
memset(&ifinfo, 0, sizeof(ifinfo));
ifinfo.if_index = if_index;
if (if_indextoname(if_index, ifinfo.if_name) == NULL)
ifinfo.link_state = ifm->ifm_data.ifi_link_state;
ifinfo.rdomain = ifm->ifm_tableid;
ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) ==
memcpy(ifinfo.hw_address.ether_addr_octet, LLADDR(sdl),
ifinfo.if_name);
if (iface->ifinfo.rdomain != ifinfo.rdomain &&
if (memcmp(&iface->ifinfo, &ifinfo, sizeof(iface->ifinfo)) != 0) {
memcpy(&iface->ifinfo, &ifinfo, sizeof(iface->ifinfo));
frontend_imsg_compose_main(IMSG_UPDATE_IF, 0, &iface->ifinfo,
sizeof(iface->ifinfo));
struct imsg_ifinfo ifinfo;
memset(&ifinfo, 0, sizeof(ifinfo));
ifinfo.if_index = if_index;
struct imsg_ifinfo ifinfo;
memcpy(&ifinfo.if_name, if_name, sizeof(ifinfo.if_name));
ifinfo.link_state = -1;
ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) ==
memcpy(ifinfo.hw_address.ether_addr_octet,
ifinfo.link_state = if_data->ifi_link_state;
ifinfo.rdomain = if_data->ifi_rdomain;
if (ifinfo.link_state == -1)
memcpy(&iface->ifinfo, &ifinfo, sizeof(iface->ifinfo));
frontend_imsg_compose_main(IMSG_UPDATE_IF, 0, &iface->ifinfo,
sizeof(iface->ifinfo));
imsg_dhcp.if_index = iface->ifinfo.if_index;
interface_status(struct interface_info *ifinfo)
char * ifname = ifinfo->name;
int ifsock = ifinfo->rfdesc;
if (ifinfo->noifmedia)
ifinfo->noifmedia = 1;
ifinfo->noifmedia = 1;
static int interface_status(struct interface_info *ifinfo);
interface_status(struct interface_info *ifinfo)
char *ifname = ifinfo->name;
int ifsock = ifinfo->rfdesc;
if (ifinfo->noifmedia)
ifinfo->noifmedia = 1;
ifinfo->noifmedia = 1;
static int interface_status(struct interface_info *ifinfo);
interface_status(struct interface_info *ifinfo)
char *ifname = ifinfo->name;
int ifsock = ifinfo->rfdesc;
if (ifinfo->noifmedia)
ifinfo->noifmedia = 1;
ifinfo->noifmedia = 1;
static int interface_status(struct interface_info *ifinfo);
void ifinfo(const char *);
ifinfo(arg);