Exemplo n.º 1
0
static int
netlink_information_fetch (struct sockaddr_nl *snl, struct nlmsghdr *h)
{
  /* JF: Ignore messages that aren't from the kernel */
  if ( snl->nl_pid != 0 )
    {
      zlog ( NULL, LOG_ERR, "Ignoring message from pid %u", snl->nl_pid );
      return 0;
    }

  switch (h->nlmsg_type)
    {
    case RTM_NEWLINK:
      return netlink_link_change (snl, h);
      break;
    case RTM_DELLINK:
      return netlink_link_change (snl, h);
      break;
    case RTM_NEWADDR:
      return netlink_interface_addr (snl, h);
      break;
    case RTM_DELADDR:
      return netlink_interface_addr (snl, h);
      break;
    case RTM_NEWROUTE:
    case RTM_DELROUTE:
    default:
      zlog_warn ("Unknown netlink nlmsg_type %d\n", h->nlmsg_type);
      break;
    }
  return 0;
}
Exemplo n.º 2
0
int
netlink_information_fetch (struct sockaddr_nl *snl, struct nlmsghdr *h)
{
    switch (h->nlmsg_type)
    {
    case RTM_NEWROUTE:
        return netlink_route_change (snl, h);
        break;
    case RTM_DELROUTE:
        return netlink_route_change (snl, h);
        break;
    case RTM_NEWLINK:
        return netlink_link_change (snl, h);
        break;
    case RTM_DELLINK:
        return netlink_link_change (snl, h);
        break;
    case RTM_NEWADDR:
        return netlink_interface_addr (snl, h);
        break;
    case RTM_DELADDR:
        return netlink_interface_addr (snl, h);
        break;
    default:
        zlog_warn ("Unknown netlink nlmsg_type %d\n", h->nlmsg_type);
        break;
    }
    return 0;
}